是否可以基于字符串生成伪随机数字,这意味着特定的字符串总是会返回相同的数字?如何根据字符串生成一个随机数?
回答
你需要的不是随机,而是哈希函数。
哈希算法创建输入数据的指纹。散列通常不可逆,即不能从散列重构数据。 (但是,如果算法存在缺陷,您可以生成冲突,但只要您没有做任何与安全相关的事情,则无需担心。)
不幸的是,没有实施本机哈希算法在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. 生成25个伪随机字符串
- 3. 根据随机数字选择一个字符串
- 4. 如何根据参数生成随机数字?
- 5. PHP为图像生成一个随机数/字符串
- 6. 如何根据Bash中的字符串获取“随机”数字?
- 7. 生成随机字符串,缺少一个字母
- 8. PHP随机字符串生成器...并非如此随机
- 9. 用这个HTML/Javascript/CSS生成一个随机字符串?
- 10. 如何生成一个随机数
- 11. 生成随机x位字符串
- 12. 随机字符串生成php
- 13. Jython随机字符串生成
- 14. 无法生成随机字符串
- 15. Python新手生成随机字符串
- 16. 随机字符串生成器(PHP)
- 17. 生成随机字符串,不SecureRandom的
- 18. Perl - PHP:随机字符串生成
- 19. Python生成随机128位字符串
- 20. 从字符串生成随机序列
- 21. 如何生成随机数并将其放入字符串
- 22. 生成一个随机数并添加到一个HTML参数的字符串
- 23. 我可以根据两个数字生成一个6位随机数吗?
- 24. 生成随机的6个字符的字符串
- 25. 通过随机字符生成生成随机名字太慢
- 26. 生成基于以前的字符串一个随机字符串
- 27. 生成一个字符串的随机固定长度排列
- 28. 在Java中生成一个随机的字符串
- 29. 从NSCharacterSet生成一个随机字符串
- 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