Неверное заполнение при использовании b64.b32hexdecodePython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Неверное заполнение при использовании b64.b32hexdecode

Сообщение Anonymous »

Я binascii. Ошибка: неправильное заполнение при использовании b32hexdecode в последнем цикле for в моей функции дешифрования.
Вот мой код:

Код: Выделить всё

from cryptography.fernet import Fernet
import base64 as b64,random as rd
def encryt(data):
key=Fernet.generate_key()
data=bytes(data,"utf-8")
key2=rd.randint(0,5)
for i in range(key2):
data=b64.a85encode(data)
data=b64.b32hexencode(data)
fernet=Fernet(key)
encrypted=fernet.encrypt(data)
for i in range(key2):
encrypted=b64.b32hexencode(encrypted)
encrypted=b64.a85encode(encrypted)
for i in range(key2):
key=b64.b64encode(key)
key=b64.a85encode(key)
key=b64.b32hexencode(key)
final=b64.b85encode(bytes(str(key2),"utf-8")).decode()+"/?\\"+encrypted.decode()+"~`~"+key.decode()
return(final)
def decrypt(data):
a=data.split("/?\\")
key2=int(b64.b85decode(bytes(a[0],"utf-8")))
b=a[1].split("~`~")
encrypted=bytes(b[0],"utf-8")
key=bytes(b[1],"utf-8")
for i in range(key2):
key=b64.b32hexdecode(key)
key=b64.a85decode(key)
key=b64.b64decode(key)
for i in range(key2):
encrypted=b64.a85decode(encrypted)
try:encrypted=b64.b32hexdecode(encrypted)
except Exception as e:encrypted=b64.b32hexdecode(encrypted+b'==')
fernet=Fernet(key)
decrypted=fernet.decrypt(encrypted)
for i in range(key2):
decrypted=b64.a85decode(decrypted)
try:decrypted=b64.b32hexdecode(decrypted)
except Exception as e:decrypted=b64.b32hexdecode(decrypted+b'=' * (4-len(decrypted) % 4))
return(decrypted.decode())
a=encryt("testest:!2345t789&^543yehwqd7")
print(a,"\n",decrypt(a))
Я пробовал использовать decrypted+b'==' и b'=' * (4-len(decrypted) % 4), но все равно получаю ошибку.
Кроме того, иногда, когда я запускаю его, я получаю ошибку binascii.Error: найдена цифра, отличная от base32, а иногда это просто работает.

Подробнее здесь: https://stackoverflow.com/questions/786 ... 2hexdecode
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»