3
A
回答
4
最簡單的,我知道的:
$str = openssl_random_pseudo_bytes(16);
您還可以通過在每個循環追加角色建立的16個字符的字符串:
for ($i = 0; $i != 16; ++$i) {
$str .= chr(mt_rand(0, 255));
}
把它變成十六進制,使用bin2hex($str)
。或者,按照我寫的earlier answer中的描述生成UUID v4。
0
<?php
function string_random($characters, $length)
{
$string = '';
for ($max = mb_strlen($characters) - 1, $i = 0; $i < $length; ++ $i)
{
$string .= mb_substr($characters, mt_rand(0, $max), 1);
}
return $string;
}
// 128 bits is 16 bytes; 2 hex digits to represent each byte
$random_128_bit_hex = string_random('abcdef', 32);
// $random_128_bit_hex might be: '4374e7bb02ae5d5bc6d0d85af78aa2ce'
1
由於PHP 5.3:
$rand128_hex = bin2hex(openssl_random_pseudo_bytes(16));
0
由於PHP 7,random_bytes
是生成隨機數據的最佳方法,但可以使用random_compat庫爲random_bytes()
添加向前兼容支持舊版本的語言。這個庫定義基於所述最好備用方法的功能,包括另外提及openssl_random_pseudo_bytes()
。
// generates 64-character (256-bit) key
function generate_256bit() {
return bin2hex(random_bytes(32));
}
// generates 32-character (128-bit) key
function generate_128bit() {
return bin2hex(random_bytes(16));
}
// 256-bit: f3af82d0bedc3a91b3b5a51beefe553e33a17912de45d3302ed0216ad867cd55
// 128-bit: 4d7245e2d61cfcce2feafd7e687cdb0e
相關問題
- 1. Java/scala BigDecimal解析128位十六進制值
- 2. 十六進制串&十六進制
- 3. 生成隨機的兩位十六進制值
- 4. 將十進制轉換爲十六進制和十六進制
- 5. 解析64位十六進制數
- 6. Perl 64位十六進制函數
- 7. JSON數轉換成十進制十六進制值
- 8. 十六進制數轉換成十進制公式
- 9. 在JS中生成隨機生成的十六進制顏色的免費十六進制顏色?
- 10. 十六進制
- 11. 十六進制
- 12. 十六進制
- 13. 十六進制()參數不能轉換爲十六進制
- 14. 十六進制字符串到十六進制整數
- 15. 選擇一個十六進制附近的十六進制數
- 16. 將十六進制轉換爲二進制到十六進制?
- 17. ToString(「X」)產生一位十六進制數
- 18. 十六進制整數
- 19. 顯示十六進制數
- 20. 十六進制浮點數
- 21. 基數爲十六進制
- 22. 將2位十進制轉換爲十六進制
- 23. 如何將14位十六進制轉換爲十進制
- 24. C指針位置,十進制和十六進制
- 25. 十進制位置通過十六進制嗎? (python)
- 26. 將十進制值轉換爲32位浮點十六進制
- 27. 從數組中生成VBA十六進制值
- 28. 十六進制爲十進制
- 29. 十六進制和十進制轉換
- 30. 使用十進制或十六進制
串聯幾個時間戳? –
保證它是獨一無二的,唯一的方法就是保存已生成的內容。你真的想要獨特的,還是隻是隨機? – Brad
隨機數字應該做的!謝謝 ! – Jake