Ind*_*ial 17 php encryption mcrypt
我一直在测试PHP 功能中可用的各种模式mcrypt
.ECB 是大多数教程中使用的模式,但是刚刚链接的页面和一些用户都不推荐使用,因此我认为CBC或CFB都应该这样做.
PHP的文档并不是太多,因为它可以比较不同的模式mcrypt
,而是指的是"Schneier的应用密码学"这本书,我现在不太热衷于购买.
那么mcrypt
我想使用哪种模式?为什么?
aaz*_*aaz 22
mcrypt
实际上实现的模式多于列出的模式,您可以使用字符串名称来访问它们:
cbc
- CBC模式cfb
- 8位CFB模式;ncfb
- 块大小的CFB模式;nofb
- OFB模式(不ofb
);ctr
- 点击率模式.这些模式的实现细节不同,因此它们的适用性取决于您的数据和环境.
填充:
CBC模式仅加密完整的块,因此mcrypt
除非您实现自己的填充,否则将明文填充为零字节.
CFB,OFB和CTR模式可以加密任何长度的消息.
初始化向量:
CBC和CFB模式需要随机IV(不要使用MCRYPT_RAND
).
OFB模式仅需要唯一的IV(例如,全局计数器,如果从不修改或删除行,则可能是数据库主键).
CTR要求每个计数器块都是唯一的(不仅仅是消息的IV,它是第一个计数器块,但其余的是通过为消息的每个块递增计数器块1而形成的).
NIST建议中的更多信息.
每块有(通常是一个,但在16 8位被用于在性能上的差异应该是不重要在PHP,如是否加密或解密可以并行和多少密码迭代CFB模式).
并且它们的安全性可能存在差异,但为此您应该咨询密码学家.
归档时间: |
|
查看次数: |
11840 次 |
最近记录: |