是否可以基於字符串生成僞隨機數字,這意味着特定的字符串總是會返回相同的數字?如何根據字符串生成一個隨機數?
回答
你需要的不是隨機,而是哈希函數。
哈希算法創建輸入數據的指紋。散列通常不可逆,即不能從散列重構數據。 (但是,如果算法存在缺陷,您可以生成衝突,但只要您沒有做任何與安全相關的事情,則無需擔心。)
不幸的是,沒有實施本機哈希算法在JS中,所以你必須實現你自己的。但是,這裏是一個SO帖子,顯示了一個實現:https://stackoverflow.com/a/7616484/3908235
而且,顯然有whole library with the implementation of common algorithms(感謝@MattGibson)。
[CryptoJS有一組哈希](https://code.google.com/p/crypto-js/) – 2014-09-18 18:12:37
如果你想在PHP中這樣做,那麼你可以使用crc32。這不是隨機但它產生的數字會根據字符串的內容而有所不同。它不是100%保證兩個不同的字符串會產生不同的數字。
實施例:
$number = crc32("http://php.net/manual/en/function.crc32.php");
注意$number
將是一個無符號的32位整數,但PHP解釋所有整數作爲帶符號的整數,該值可以32位環境之間被不同地表示 - 其可以返回負數和正數 - 和64位環境 - 這將只返回正數。
這是一個好主意,用printf輸出這些格式化輸出到HTML,
printf("%u", $number);
爲了使各不同架構產生的值的比較,你也應該格式化使用sprintf字符串,剛需安全:
$numberToStoreShareOrCompare = sprintf("%u", $number);
- 1. 生成一個隨機字符串
- 2. 生成隨機字符串
- 3. 生成25個僞隨機字符串
- 4. 根據隨機數字選擇一個字符串
- 5. 如何在Rational Performance Tester中生成一個隨機字符串?
- 6. 如何生成隨機字母數字字符串?
- 7. 如何根據參數生成隨機數字?
- 8. PHP爲圖像生成一個隨機數/字符串
- 9. 生成一個隨機字符串數組
- 10. 如何根據Bash中的字符串獲取「隨機」數字?
- 11. 生成一個隨機字符,oracle
- 12. 如何在Haskell中隨機生成一個隨機生成的數字列表
- 13. 生成隨機字符串,缺少一個字母
- 14. 生成奇怪字符的隨機字符串生成
- 15. 由openssl生成的隨機字符串並非如此隨機。
- 16. PHP隨機字符串生成器...並非如此隨機
- 17. 如何生成一個隨機數
- 18. 用這個HTML/Javascript/CSS生成一個隨機字符串?
- 19. 隨機字符串生成php
- 20. 生成隨機X長度字符串
- 21. Python生成隨機128位字符串
- 22. 生成字符串的隨機序列
- 23. 生成隨機字符串,不SecureRandom的
- 24. 生成獨特的隨機字符串
- 25. Python新手生成隨機字符串
- 26. 生成隨機字符串的zsh
- 27. Perl - PHP:隨機字符串生成
- 28. PHP半隨機字符串生成器
- 29. Jython隨機字符串生成
- 30. 隨機字符串生成器(PHP)
那麼它會不會是隨機的呢?並且,是的,這是可能的。你應該修改你的問題,詢問它是如何完成的,並縮小到一個特定的範圍,而不僅僅是問是否可能。 – 2014-09-18 18:09:34
你在尋找哈希函數嗎? (如果是這樣,你想要一個使用Javascript還是PHP?你的問題被標記爲兩個......)但是,可能更重要的是,你爲什麼要這樣做?爲您的使用選擇正確的散列函數非常重要。 – 2014-09-18 18:10:46
我需要在PHP中執行此操作,對於標記兩者都很抱歉,我的錯誤。我只想爲每個文件擴展名分配一個「隨機」顏色。例如,「.jpg」應始終指定相同的隨機顏色。我不知道我是否有意義。 – Tom 2014-09-18 18:19:21