PHP具有以下功能:
我可以假设mcrypt中实现的所有其他密码都支持CBC,OFB,NOFB,CFB和ECB分组密码模式吗?
理论上他们应该。如果在实践中它是如此,我很感兴趣。
谢谢!
答案 0 :(得分:1)
PHP文档中的library introduction page说:
这是mcrypt库的接口,它支持各种块算法,如 DES,TripleDES,Blowfish(默认),3-Way,SAFER-SK64,SAFER-SK128,TWOFISH,TEA,RC2和GOST in CBC,OFB,CFB和ECB密码模式。
这看起来该库旨在支持与分组密码选择正交的不同操作模式,这似乎是一个好主意。此外,正如您已经发现的,有两个函数mcrypt_list_algorithms
和mcrypt_list_modes
可以独立访问它们
另一方面,底层库libmcrypt的主页说:
应该记住,并非所有模式都适用于所有分组密码,因为 实施约束或设计约束。
但是没有迹象表明哪种模式适用于或不适用于哪种密码 - 可能这可能取决于块大小?
看起来详细的答案只能在libmcrypt或PHP包装器的源代码中找到。