如何找出mcrypt中给定密码的支持模式?

时间:2011-11-25 11:35:12

标签: php cryptography mcrypt

PHP具有以下功能:

我可以假设mcrypt中实现的所有其他密码都支持CBC,OFB,NOFB,CFB和ECB分组密码模式吗?

理论上他们应该。如果在实践中它是如此,我很感兴趣。

谢谢!

1 个答案:

答案 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_algorithmsmcrypt_list_modes可以独立访问它们

另一方面,底层库libmcrypt的主页说:

  

应该记住,并非所有模式都适用于所有分组密码,因为   实施约束或设计约束。

但是没有迹象表明哪种模式适用于或不适用于哪种密码 - 可能这可能取决于块大小?

看起来详细的答案只能在libmcrypt或PHP包装器的源代码中找到。