Форум сайта python.su
0
* Выложил здесь, т.к. требуется питоновский код
Задача: получаю из веб формы текст пользователя. Нужно заменить все символы на другие (зашифровать). Делаю в джанго. Передаю методом пост, обрабатываю, но не могу справиться с кодом.
Создал словарь типа: deo = { ‘a’: ‘я’ … }
и как ,например текст из формы “горе от ума”, “зашифровать”(просто замена символов)?
ЗЫ использовал такое:
deo = { ... } def cypher_get1(sym): try: return deo[sym] except sym def cypher1(msg): return ''.join(map(cypher_get1, msg)
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})
Офлайн
88
str.translate …
Офлайн
0
хм, почитал про метод, возможно подойдет… протестирую завтра, спасибо
Офлайн
0
в итоге родил:
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('/')
Офлайн