我一直在关注有关使用mcrypt_create_iv()
生成随机字符串的信息,并在3v4l.org处提供了一些示例代码。
在阅读PHPWiki所有mycrypt_*
函数后,将显示一个已撤消的警告,但它没有指定7.2 / 8.0中将用于替换这些函数的内容。
由于它声明它将在7.2 / 8.0中删除,将用什么代替IV?
我不在我的软件中使用此功能进行加密和解密。我只用它来安全/检索一个唯一的字符串。
答案 0 :(得分:4)
虽然我想每个PHP加密扩展都会提供自己的函数版本来生成随机数据,就像他们目前所做的那样:
random_bytes()
比它更好)这仅仅是因为任何加密API在没有访问CSPRNG的情况下都是不完整的。实际上,PHP开发人员出于同样的原因添加了mcrypt_create_iv()
,而它不是libmcrypt的一部分。
我只将它用于安全/检索唯一字符串。
“随机”并不意味着“独特”。前者需要不可预测,而后者必须不可重复。
确实,碰撞的几率会随着您添加到字符串中的每个随机字节呈指数级下降,但唯一性绝不是100%保证。