所以我刚开始尝试使用Pycrypto并希望对消息进行加密和解密,但是我放在一起的这段代码产生了一些错误。Python:Pycrypto RSA公共密钥加密错误
这里,他们是:
enc_data = public_key.encrypt
TypeError: unsupported operand type(s) for pow(): 'str', 'int','int'
ciphertext = cipher.encrypt('Bob')
Traceback (most recent call last):
line 22, in ciphertext = cipher.encrypt('Bob')
File "C:\Anaconda3\lib\site-packages\Crypto\Cipher\PKCS1_OAEP.py", line 50, in encrypt
db = lHash + ps + bchr(0x01) + messageTypeError: can't concat bytes to str
的代码:
import Crypto
from Crypto.Hash import SHA256
from Crypto.PublicKey import RSA
from Crypto.Cipher import PKCS1_OAEP
from Crypto import Random
random_generator = Random.new().read
key = RSA.generate(1024, random_generator)
public_key = key.publickey()
enc_data = public_key.encrypt('Bob', 32)
cipher = PKCS1_OAEP.new(key)
ciphertext = cipher.encrypt('Bob')
这意味着可以 '鲍勃' 加密的两个命令产生这些错误,并是的,我现在第一种方式不是很安全。
如果对象只是对数据进行加密和解密,并且不需要公钥/私钥对使用对称加密(如AES)。即使使用非对称加密,数据通常也会使用对称加密进行加密。非对称加密限于密钥大小,比对称加密慢**。 – zaph