python为RSA模块使用什么类型的填充?

时间:2016-04-14 15:24:54

标签: python encryption rsa padding

我刚接触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。

1 个答案:

答案 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填充。