我正在使用此函數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