什么是Coldfusion 10随机数生成最佳实践?

Dav*_*Eno 7 random algorithm coldfusion

如果使用RandRange算法,是否仍需要使用Randomize ?例如:

  RandRange(1, 37, "SHA1PRNG")  
Run Code Online (Sandbox Code Playgroud)

Adobe的文档说:

SHA1PRNG:使用Sun Java SHA1PRNG算法生成一个数字.该算法提供比默认算法更大的随机性.

如果有一个函数可以提供最随机的序列,那就太好了.Adobe给出的示例使用Randomize和RandRange.

任何澄清都是受欢迎的.

附加信息:

在这种情况下,我从大约40个列表中选择随机字符来分配7个字符的密码.虽然还有单独的(但不一定是唯一的)用户名,但我想避免重复.没有任何财务或机密风险 - 只需要识别教育网站的用户.

Hen*_*nry 1

对于非重复,您必须缩小 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