Imr*_*zad 13 python django pycrypto
我打算在项目中使用PyCrypto,我想知道PyCrypto是否安全可靠,可以使用.如何根据各种加密算法(如RSA和AES)确保PyCrypto正确加密数据?
dli*_*itz 19
这取决于.
PyCrypto的某些部分非常好.例如,Crypto.Random的API(在PyCrypto 2.1中引入)被设计得非常简单,它使用的基础算法(Fortuna)也被设计得非常简单.
其他部分只是低级加密原语的实现,所以它可以工作,但你必须知道你正在做什么才能正确使用它们.例如,Crypto.PublicKey.RSA没有实现完整的RSA PKCS#1标准(这是大多数人在谈论"RSA"时所考虑的).它只实现了基本的RSA原语(m ^ e mod n和c ^ d mod n),你仍然需要提供自己的PKCS#1实现.
确保PyCrypto正确加密数据(不读取源代码,我鼓励大家做)的最佳方法是使用标准协议和/或消息格式,并测试您的代码是否与其他实现互操作.如果您正在制作自己的消息格式(您可能不应该这样做),那么您需要非常小心地确保PyCrypto实际上正在执行您认为正在执行的所有操作.
免责声明:我是目前的PyCrypto维护者,所以我的意见不应被视为独立评论.
更新: PyCrypto v2.5及更高版本现在包含正确的RSA PKCS#1加密和签名实现.有关详细信息,请参阅Crypto.Cipher.PKCS1_OAEP和Crypto.Signature.PKCS1_PSS的API文档.
| 归档时间: |
|
| 查看次数: |
3536 次 |
| 最近记录: |