如果您将 RandRange
与算法一起使用,您还需要使用 Randomize 吗?例如:
RandRange(1, 37, "SHA1PRNG")
Adobe 的文档说:
SHA1PRNG: generates a number using the Sun Java SHA1PRNG algorithm. This algorithm provides greater randomness than the default algorithm.
如果有一个函数可以提供尽可能多的随机序列,那就太好了。 Adobe给出的例子同时使用了Randomize和RandRange。
欢迎任何澄清。
附加信息:
在这种情况下,我从大约 40 个字符的列表中选择随机字符来分配 7 个字符的密码。尽管也有单独的(但不一定是唯一的)用户名,但我想避免重复。没有任何财务或 secret 受到威胁 - 只需要识别教育网站的用户。
最佳答案
对于非重复,你必须减少 randRange 的范围并从未使用的字符列表中选择。
当然,将 RandRange 与 SHA1PRNG 一起使用,不用担心。
你真的不需要随机化。当您需要可预测的随机序列进行调试时,它仅用于为随机函数设定种子。
另一种解决方案是使用 java.util.Collections 的 shuffle() 对字符集合进行混洗,然后使用 left()
获得所需长度的非重复字符。请参阅:http://www.bennadel.com/blog/2284-Using-java-util-Collections-To-Shuffle-A-ColdFusion-Query-Column-Corrupts-Column-Values.htm
关于algorithm - Coldfusion 10 随机数生成最佳实践是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21285106/