msg =字符串+ rsa_encryped_result 当我们用rsaResult连接字符串时,rsa_encrypt(msg)解密失败 包含代码
我们尝试更改为base64而不是String,也使用PAD
class Crypto():
def __init__(self):
random_generator = Random.new().read
self.private_key = RSA.generate(1024, random_generator)
self.public_key = self.private_key.publickey()
def get_string_public_key(self):
return self.public_key.exportKey()
def decrypt_message(self, message):
decrypted_message = self.private_key.decrypt(message)
return decrypted_message
def encrypt_message(message, public_key):
encrypted_message = public_key.encrypt(message, 32)[0]
return encrypted_message
def make_public_key(string_key):
return RSA.importKey(string_key)
bob = Crypto()
first_msg = "Hello World"
print first_msg + ' - the original'
msg1 = encrypt_message(first_msg, make_public_key(bob.get_string_public_key()))
msg2 = msg1 + "Hello again"
msg3 = encrypt_message(msg2, make_public_key(bob.get_string_public_key()))
# work ok
print 'simple one \r\n', bob.decrypt_message(msg1)
print msg2 + ' the second one'
msg3 = bob.decrypt_message(msg2)
# does not work
print 'second one \r\n', msg3
print msg3.find("again")
我们希望在msg3中找到字符串“再次”,但我们没有找到
second one
w%z�� ����bV�W�T ?�q
H?�)�9��)0�Ӕk��Ӯ4dK-�CH��!�b�5��d�_������Ð�a2g
����K��_E�n�Wܧlz]y�~�jBY�̐&}\��h���$��WZ��
-1
答案 0 :(得分:1)
您尝试解密msg2而不是msg3,所以它失败了,msg2不是有效的rsa加密文件,因此解密无法理解
答案 1 :(得分:0)
在阅读了有关RSA的更多信息后,我明白没有办法做我想要的事情(使用不同的RSA密钥一对一地包装消息,然后它们再次将它们拆开)。 所以我选择了另一种算法: 我使用了RAC4-一种对称算法来加密消息 我使用RSA-通过网络发送RAC4-密钥 感谢所有人