我正在使用此函数http://php.net/manual/fr/function.random-bytes.php 我想将此随机字节转换为二进制视图。将字节转换为二进制
我试图将其转换为hex2bin,然后我用函数包将其转换为二进制文件,但它不起作用。
如何将随机字节转换为二进制文件?
我正在使用此函数http://php.net/manual/fr/function.random-bytes.php 我想将此随机字节转换为二进制视图。将字节转换为二进制
我试图将其转换为hex2bin,然后我用函数包将其转换为二进制文件,但它不起作用。
如何将随机字节转换为二进制文件?
random_bytes
返回二进制数据,但不是可读的格式。如果你想真正代表它为1和0的字符串,你需要首先使用PHP的bin2*
功能之一转换,然后用base_convert
将其转换回:
<?php
function random_binary($bytes) {
return base_convert(bin2hex(random_bytes($bytes)), 16, 2);
}
echo random_binary(1);
// 10000011
这将只工作了到系统的整数限制(在64位系统上可能为2^63-1)。如果你有安装了GMP扩展,可以使用任意精度如下:
<?php
function random_binary($bytes) {
$hex = bin2hex(random_bytes($bytes));
return gmp_strval(gmp_init($hex, 16), 2);
}
echo random_binary(40);
// 10000000101110000010011111001011011100111110...
我想'random_bytes'返回一个二进制字符串。您可以使用'BIN2HEX()'而不是要显示进制数值 – modsfabio