我正在使用:
random_bytes(30);
为我的程序生成一个随机字符串。然后将该字符串存储在mysql数据库中。但是,当我运行该函数时,我得到一个输出,如
T�Ը�@(���m
包含不可读的字符。当我尝试将其存储在我的数据库中时,不会存储 字符,因此这意味着字符串未被正确保留。
如何才能使它返回一个只有可读字符的字符串,这些字符在我的mysql数据库中不会丢失?
谢谢!
答案 0 :(得分:0)
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;