我正在使用:
random_bytes(30);
为我的程序生成随机字符串。然后,该字符串存储在mysql数据库中。但是,当我运行该函数时,会得到如下输出
T�Ը�@(���m
其中包括不可读的字符。当我试图将它存储在我的数据库中时,字符并没有被存储,因此这意味着字符串没有被正确地保存。
我怎样才能使它返回一个只有可读字符的字符串,而不会丢失在mysql数据库中?
谢谢!
最佳答案
random_bytes生成适合加密使用的任意长度的加密随机字节字符串,例如在生成盐、密钥或初始化向量时。像这样使用
$bytes = random_bytes(5);
echo bin2hex($bytes);
您也可以编写自己的代码来生成特定长度的随机字符串
$characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
$charactersLength = strlen($characters);
$randomString = '';
for ($i = 0; $i < $length; $i++) {
$randomString .= $characters[rand(0, $charactersLength - 1)];
}
echo $randomString;