python用于RSA模块的填充类型是什么?

我是使用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.

解决方法:

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填充的实现.

请注意,现在(ref),此填充不再可用.从PKCS#1 v2.0开始,建议将OAEP用于加密,并将PSS用于签名. PyCrypto支持OAEP / PSS和PKCS#1 v1.5填充.

上一篇:加密模块是Fernet安全的,我可以使用该模块进行AES加密吗?


下一篇:PHP加密的SSL会话数据