PHP:Mcrypt-哪种模式?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (10)

我一直在测试PHP 函数中可用的各种模式mcryptECB 是大多数教程中使用的模式,但我认为CBCCFB应该做到这一点。

那么,mcrypt我想使用哪种模式?为什么?

提问于
用户回答回答于

mcrypt实际上实现了比列出更多的模式,可以使用字符串名称来访问它们:

  • cbc- CBC模式
  • cfb- 8位CFB模式;
  • ncfb- 块大小的CFB模式;
  • nofb- OFB模式(不ofb);
  • ctr- 点击率模式。

这些模式在实现细节上有所不同,因此它们的适用性取决于你的数据和环境。

填充

  • CBC模式只加密完整的块,因此mcrypt除非您实现自己的填充,否则用零字节填充您的明文。
  • CFBOFBCTR模式加密任意长度的消息。

初始化向量

  • CBCCFB模式需要随机IV(不要使用MCRYPT_RAND)。
  • OFB模式仅需要一个独特的IV(例如全局计数器,如果行从未被修改或删除,则可能是数据库主键)。
  • CTR要求每个计数器块都是唯一的(不仅仅是消息的IV,这是第一个计数器块,但其余的是通过为每个消息块增加计数器块1而形成的)。

扫码关注云+社区