我一直在测试PHP的mcrypt
函数中提供的各种modes。ECB是大多数教程中使用的模式,但并不是刚链接的页面和some users都推荐使用的模式,所以我认为CBC或CFB中的任何一个都可以做到这一点。
PHP文档在比较mcrypt
可用的不同模式时并不是太多,而是参考了“Schneier的应用密码学”这本书,我目前不太想买这本书。
那么,我应该使用哪种mcrypt
-modes ?为什么?
发布于 2011-02-25 04:02:39
与listed相比,mcrypt
实际上实现了更多的模式,您可以使用字符串名称来访问它们:
cbc
- CBC modecfb
-8位CFB mode;ncfb
-块大小CFB mode;nofb
- OFB模式(非ofb
);ctr
- CTR模式。这些模式在实现细节上有所不同,因此它们的适用性取决于您的数据和环境。
填充
除非您实现了自己的padding.
mcrypt
会用零字节填充您的明文。初始化向量
有关更多信息,请参阅NIST recommendations。
性能上的差异在PHP中是不重要的,比如加密或解密是否可以并行化,以及每个块使用了多少次密码迭代(通常是一次,但在8位CFB模式下是16次)。
malleability中存在一些差异,这些差异应该不重要,因为您将应用MAC。
它们的安全性可能会有所不同,但为此您应该咨询cryptographer。
https://stackoverflow.com/questions/5108408
复制相似问题