Как сделать функцию расшифровки для этой функции шифрования, которую я сделал? - PullRequest
0 голосов
/ 12 апреля 2020

У меня есть эта функция шифрования:

def encrypt(password):
    for i in (password):
          not_Encrpyted = ''.join(dict_Chiper[i] for i in password)
          Encrpyted = ''.join(reversed(not_Encrpyted))
return Encrpyted

По существу, диктат, который у меня есть для этой функции, состоит из 12 случайных символов, например, буква 'a' будет заменена на 'nqwv62d ... До 12 символов. Я попытался сделать функцию, но она не работает.

Способ разучить его в моем уме - разделить его на 12 символов, а затем снова повернуть его и найти в dict_Dechiper, который я сделал. Это диктат. Я не знаю, если это неправильно или нет. Поправьте меня, если это не так.

dict_Dechiper = {v: k for k, v in dict_Chiper.items()}

Пожалуйста, помогите мне сделать эту программу. Любая помощь приветствуется! Заранее спасибо! :)

РЕДАКТИРОВАТЬ: я удалил строку в функции def, и она работает. Спасибо за уведомление Pythoni c для Azro!

1 Ответ

0 голосов
/ 12 апреля 2020

ENCRYPT : Во-первых, вы encrypt метод делаете X раз одно и то же (X - длина пароля), для каждой буквы вы вычисляете весь зашифрованный результат, вам не нужно, просто для каждой буквы получите значение от dict_cipher

def encrypt(password):
    encrypted = ''
    for i in password:
        encrypted += dict_cipher[i]
    return "".join(reversed(encrypted))

DECRYPT , поскольку последняя операция encrypt обращена, здесь она должна быть первой, затем читать каждый блок c из 12 и найти письмо в dict_decipher

def decrypt(encrypted):
    decrypted = ''
    encrypted = "".join(reversed(encrypted))
    for i in range(0, len(encrypted), 12):
        part = encrypted[i:i + 12]
        decrypted += dict_decipher[part]
    return decrypted

с демо

# Fill both dicts
for a in (ascii_letters + digits):
    dict_cipher[a] = "".join(sample(ascii_letters + digits, 12))
dict_decipher = {v: k for k, v in dict_cipher.items()}

print(dict_cipher)    # {'a': 'eBx8zu62KPGi',   'b': '2ofrIamwV7XJ',   'c': '01PJWsiIqajl',   ...
print(dict_decipher)  # {'eBx8zu62KPGi': 'a',   '2ofrIamwV7XJ': 'b',   '01PJWsiIqajl': 'c',   ...

value = "abc"
ee = encrypt(value)
print(ee)  # ljaqIisWJP10JX7VwmaIrfo2iGPK26uz8xBe

dd = decrypt(ee)
print(dd)  # abc
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...