Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 22, 2015 16:35:53

Xa_xoo
Зарегистрирован: 2015-08-28
Сообщения: 58
Репутация: +  0  -
Профиль   Отправить e-mail  

замена всех символов

* Выложил здесь, т.к. требуется питоновский код
Задача: получаю из веб формы текст пользователя. Нужно заменить все символы на другие (зашифровать). Делаю в джанго. Передаю методом пост, обрабатываю, но не могу справиться с кодом.
Создал словарь типа: deo = { ‘a’: ‘я’ … }
и как ,например текст из формы “горе от ума”, “зашифровать”(просто замена символов)?
ЗЫ использовал такое:

deo = { ... }
def cypher_get1(sym):
try:
return deo[sym]
except sym
def cypher1(msg):
return ''.join(map(cypher_get1, msg)

так вот совсем не понравился код и еще ошибку шлет sequence item 0: excepted str instance, BoundField found
Ну не важно… буду рад более грамотному способу
*во вьюхе*^
def do_code(request):
if request.POST:
new = codetextform(request.POST) // codetextform - форма питоновская с модулем
if new.is_valid():
return cypher1(new)
return render_to_response('code_prog_res.html', {'new': new})

Офлайн

#2 Сен. 22, 2015 17:09:13

Shaman
Зарегистрирован: 2013-03-15
Сообщения: 1369
Репутация: +  88  -
Профиль   Отправить e-mail  

замена всех символов

str.translate …

Офлайн

#3 Сен. 22, 2015 17:57:03

Xa_xoo
Зарегистрирован: 2015-08-28
Сообщения: 58
Репутация: +  0  -
Профиль   Отправить e-mail  

замена всех символов

хм, почитал про метод, возможно подойдет… протестирую завтра, спасибо

Офлайн

#4 Сен. 24, 2015 10:47:17

Xa_xoo
Зарегистрирован: 2015-08-28
Сообщения: 58
Репутация: +  0  -
Профиль   Отправить e-mail  

замена всех символов

в итоге родил:
html:

{% block code %}
<form action="/do/" method="POST">
<input type="text" name="ur">
<input type="submit" value="code">
</form>
{% endblock %}
вьюха:
def do_code(request):
    d = {
    'а': 'я', '1': '0', 'A': 'Я', 'a': 'z', 'A': 'Z',
    'б': 'ю', '2': '9', 'Б': 'Ю', 'b': 'y', 'B': 'Y',
    'в': 'э', '3': '8', 'В': 'Э', 'c': 'x', 'C': 'X',
    'г': 'ь', '4': '7', 'Г': 'Ь', 'd': 'w', 'D': 'W',
    'д': 'ы', '5': '6', 'Д': 'Ы', 'e': 'v', 'E': 'V',
    'е': 'ъ', '6': '5', 'Е': 'Ъ', 'f': 'u', 'F': 'U',
    'ё': 'щ', '7': '4', 'Ё': 'Щ', 'g': 't', 'G': 'T',
    'ж': 'ш', '8': '3', 'Ж': 'Ш', 'h': 's', 'H': 'S',
    'з': 'ч', '9': '2', 'З': 'Ч', 'i': 'r', 'I': 'R',
    'и': 'ц', '0': '1', 'И': 'Ц', 'j': 'q', 'J': 'Q',
    'й': 'х', ' ': '$', 'Й': 'Х', 'k': 'p', 'K': 'P',
    'к': 'ф', '!': '^', 'К': 'Ф', 'l': 'o', 'L': 'O',
    'л': 'у', '?': '*', 'Л': 'У', 'm': 'n', 'M': 'N',
    'м': 'т', '.': '@', 'М': 'Т', 'n': 'm', 'N': 'M',
    'н': 'с', ',': '#', 'Н': 'С', 'o': 'l', 'O': 'L',
    'о': 'р', '№': '[', 'О': 'Р', 'p': 'k', 'P': 'K',
    'п': 'п', '%': ']', 'П': 'П', 'q': 'j', 'Q': 'J',
    'р': 'о', ';': '.', 'Р': 'О', 'r': 'i', 'R': 'I',
    'с': 'н', '(': '+', 'С': 'Н', 's': 'h', 'S': 'H',
    'т': 'м', ')': '-', 'Т': 'М', 't': 'g', 'T': 'G',
    'у': 'л', '/': ',', 'У': 'Л', 'u': 'f', 'U': 'F',
    'ф': 'к', '@': '!', 'Ф': 'К', 'v': 'e', 'V': 'E',
    'х': 'й', ':': '?', 'Х': 'Й', 'w': 'd', 'W': 'D',
    'ц': 'и', '$': '(', 'Ц': 'И', 'x': 'c', 'X': 'C',
    'ч': 'з', '#': ')', 'Ч': 'З', 'y': 'b', 'Y': 'B',
    'ш': 'ж', '[': '=', 'Ш': 'Ж', 'z': 'a', 'Z': 'A',
    'щ': 'ё', ']': '/', 'Щ': 'Ё',
    'ъ': 'е', '=': '%', 'Ъ': 'Е',
    'ы': 'д', '~': '&', 'Ы': 'Д',
    'ь': 'г', '&': '~', 'Ь': 'Г',
    'э': 'в', '{': '_', 'Э': 'В',
    'ю': 'б', '}': '<', 'Ю': 'Б',
    'я': 'а', '_': '>', 'Я': 'А',
               '<': '}',
               '>': '{',
               '*': '|',
               '+': '№',
               '-': '`'
    }
    if request.method == 'POST':
        if 'ur' in request.POST:
            new = request.POST['ur']
            sres = [d.get(l) for l in new]
            so = ''.join(sres)
            return render_to_response('code_prog_res.html', {'so': so, 'new': new})
        else:
            return redirect('/')

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version