![](/img/trans.png)
[英]How to encrypt and decrypt image using DES using pycrypto library in python 3?
[英]How to encrypt (and decrypt) data with pycrypto and RSA?
我一直在尝试使用 pycrypto 中的 RSA 加密 Python 中的数据。 我尝试按照此处的说明进行操作: http : //www.laurentluce.com/posts/python-and-cryptography-with-pycrypto/但这是我调用enc_data = public_key.encrypt('abcdefgh', 32)
:
Traceback (most recent call last):
File "<pyshell#5>", line 1, in <module>
enc_data = public_key.encrypt('abcdefgh', 32)
File "C:\Python35\lib\site-packages\Crypto\PublicKey\RSA.py", line 150, in encrypt
return pubkey.pubkey.encrypt(self, plaintext, K)
File "C:\Python35\lib\site-packages\Crypto\PublicKey\pubkey.py", line 75, in encrypt
ciphertext=self._encrypt(plaintext, K)
File "C:\Python35\lib\site-packages\Crypto\PublicKey\RSA.py", line 224, in _encrypt
return (self.key._encrypt(c),)
File "C:\Python35\lib\site-packages\Crypto\PublicKey\_slowmath.py", line 65, in _encrypt
return pow(m, self.e, self.n)
TypeError: unsupported operand type(s) for pow(): 'str', 'int', 'int'
在此先感谢您提供有关此问题的任何建议。
如果您查看encrypt
方法:
plaintext
(字节串或长) - 用 RSA 加密的数据块。 它在数值上不能大于 RSA 模块 (n)。
您的数据不是字节字符串或长字符串。 如果要输入文本,则首先需要使用字符编码(例如 UTF-8)进行输入。
请注意,“纯文本”只是加密原语的输入。 所有现代密码都对字节进行操作。 从历史上看,输入可能是实际的文本,但现在不是了。
另请注意:
注意:该函数执行普通的、原始的 RSA 加密(教科书)。 在实际应用中,你总是需要使用适当的加密填充,你不应该直接用这种方法加密数据。 不这样做可能会导致安全漏洞。 建议改用模块
Crypto.Cipher.PKCS1_OAEP
或Crypto.Cipher.PKCS1_v1_5
。
对于这些函数,还需要将文本转换为字节数组。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.