1

我正在使用 RSA python 包加密消息并尝试将其传递给 PHP 站点进行解密。见下文:

message = rsa.encrypt('abc', pubkey)
print message
print type(message)

我得到的是一些加密文本

q??$$??kK?Y??p?[e?[??f???x??s!?s?>?z?*y?p?????????分?
?   ???({u????NH?B???N?%?@5|?~?????\U?.??r?Y?q
<type 'str'>

将其传递给其他语言进行解密的最佳方法是什么?

4

2 回答 2

2

那不是文本,而是二进制数据。当您使用 python2 时,它并不能完全区分bytesstr因此您应该关心这一点。

另一端应该完全按照 rsa 输出的方式获取这些字节,这样您就可以将它们写入您的连接或文件中(假设您正在与它们交谈)。

于 2013-09-30T08:26:11.800 回答
2

对于网络,您可以对数据进行 base64 编码。这是对二进制数据进行编码的一种常见且良好的方法。

>>> import base64
>>> base64.b64encode(b"data")
'ZGF0YQ=='
>>> base64.b64decode(base64.b64encode(b"data"))
'data'

顺便说一句,您不应该那样使用 RSA。使用原始 RSA 非常不安全。您必须使用带有适当填充的概率加密方案,例如 RSAES-OAEP。PKCS#1 定义了这样的加密和签名方案。

于 2013-09-30T09:34:11.877 回答