建议和反馈

请填写你的反馈内容

问答 > 密码学 > 问答详情
已解决

Python RSA加密/解密,从文件下载此消息后,为什么加密消息的长度会发生变化?10LK

加密

def encrypt():
k=0
l=1
length=len(message)/20
if int(length)>=1:
    for i in range(int(length)+1):
        message1=""
        if i<int(length)+1:
            i=k
            message1=""
            for j in range(20*i,20*(i+1)):
                message1+=message[j]
            k=i
            message1=message1.encode()
            print(len(message1))
            crypto = rsa.encrypt(message1, pubkey)
            text1.insert(END,crypto)
            cryptow+=crypto
        else:
            message1=""
            for i in range(len(message)-int(length)*20):
                message1+=message[int(length)*20+i]
            message1=message1.encode()
            crypto = rsa.encrypt(message1, pubkey)
            print(type(crypto))
            text1.insert(END,crypto)
            cryptow+=crypto
print(len(cryptow))
showinfo("Attention!","Message was encrypted")

消息= 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71

打印(len(cryptow))倒数第二个字符串= 96

然后我将生成的密码保存在文件中:

def save_encrypt_message():
filename = asksaveasfilename()
save_encrypt_message = open(filename,'wb')
print(len(cryptow))
save_encrypt_message = save_encrypt_message.write(cryptow)
save_encrypt_message.close()

print(len(cryptow))仍然是96

之后,我重新编程并从文件中加载密码:

def open_message_for_decrypt():
filename = askopenfilename()
decrypt_message = open(filename,'rb')
decrypt_message = decrypt_message.readlines()
text1.delete('1.0', END)
text1.insert(END,decrypt_message)
print(len(decrypt_message))

print(len(decrypt_message))= 1那么为什么?


2019-08-23
0
请先登陆或注册

时光月下2019-08-23

在线上:

decrypt_message = decrypt_message.readlines()

列表被分配给decrypt_message ,其中列表中的每个项目都是文件中的一行; 文件中只有一行...


投一票
评论(0)
赞赏(0)
邀请

感谢您的善举,每一次解答会成为新人的灯塔,回答被采纳后获得20算力和相应的LK币奖励