PHP-不建议使用mcrypt 7.1 /删除7.2

我一直在关注关于使用mcrypt_create_iv()生成随机字符串的信息,并在3v4l.org处有一些示例代码.

读取PHPWiki后,所有mycrypt_ *函数将显示过时的警告,但未指定在7.2 / 8.0中将使用哪些功能替代这些功能.

由于它声明它将在7.2 / 8.0中删除,因此将用什么来代替IV?

我没有在软件中使用此功能进行加密和解密.我仅将其用于安全/检索唯一字符串.

解决方法:

random_bytes()

尽管我想象每个PHP密码学扩展都将提供其自己的函数版本来生成随机数据,就像它们当前所做的那样:

> ext / openssl提供openssl_random_pseudo_bytes()(但是random_bytes()比它更好)
> libsodium-php提供了\Sodium\randombytes_buf()

那是因为没有访问CSPRNG,任何加密API都是不完整的.实际上,出于同样的原因,PHP开发人员添加了mcrypt_create_iv(),但它不是libmcrypt的一部分.

I only use it for safe/retrievel of a unique string.

“随机”并不意味着“独特”.前者必须不可预测,而后者则必须不可重复.
的确,添加到字符串中的每个随机字节都会使冲突的机会呈指数下降,但是绝对不能保证100%唯一.

上一篇:java-将@Deprecated批注添加到超类,子类或两者都添加?


下一篇:phpredis 报错 “Function Redis::setTimeout() is deprecated” 解决方法