我正在使用:
random_bytes(30);
为我的程序生成一个随机字符串。然后将该字符串存储在mysql数据库中。但是,当我运行该函数时,输出的结果如下:
T�Ը�@(���m
这段文本包含了无法识别的字符。当我试图将其存储到数据库中时,这些�字符并不会被保存下来,导致该字符串不能被正确地保留。
我该如何做才能返回一个只包含可读字符的字符串,并且不会在mysql数据库中丢失?
谢谢!
random_bytes函数会生成一个加密随机字节长度的字符串,适用于密码学用途,例如生成盐、密钥或初始化向量。使用方法如下:
$bytes = random_bytes(5);
echo bin2hex($bytes);
random_bytes
可以生成具有密码学安全性的随机字节,而rand
则不行。在PHP rand
页面上有如下说明:注意:此函数不能生成具有密码学安全性的值。 - zaph
Random::asciiPrintableString($length)
。这是所有可以打印或在屏幕上看到的字符。但是,如果你想在URL中使用该随机字符串,你需要使用Random::base64UrlString($length)
,其中包含不需要在URL中进行编码或转义的字符。 - caw