我刚接触Python加密,我想知道哪个填充是RSA module的默认填充?
我得到密钥并通过以下方式解密数据:
import rsa
(pub, priv) = rsa.newkeys(512)
# receive the encrypted data here
data = rsa.decrypt(encrypt_data, priv)
就我而言,填充方法包括:RSA_PKCS1_PADDING,RSA_PKCS1_OAEP_PADDING,RSA_SSLV23_PADDING,RSA_NO_PADDING。
答案 0 :(得分:4)
rsa module(目前为v3.4)仅支持用于加密的PKCS#1 v1.5填充(随机类型2填充)和签名。
在rsa/__init__.py
中,您可以看到rsa.encrypt()
实际上是rsa.pkcs1.encrypt()
,其内部使用rsa.pkcs1._pad_for_encryption()
,这是前面提到的PKCS#1 v1.5填充的实现。< / p>
请注意,现在(ref),不应再使用此填充。建议使用OAEP进行加密,并使用PKS#1 v2.0进行签名PSS。 PyCrypto支持OAEP / PSS和PKCS#1 v1.5填充。