VBScript在循环中生成相同的随机数 - 如何解决?

Mar*_*cus 2 random vbscript asp-classic

所以我有这个函数生成一个长度为8个字符的随机字符串.它的工作原理是每页调用一次,即如果我刷新它将显示一个新的数字.

但我想在循环中生成许多这些并返回相同的数字.我怎么解决这个问题?

Function generateCode()

   pChar = "0123456789"

   pCount = Len(pChar) 

   Dim psw
   psw = ""

   Randomize
   For i = 1 To 8 ' password length
      psw = psw & Mid( pChar, 1 + Int(Rnd * pCount), 1 )
   Next

 generateCode= psw
End Function
Run Code Online (Sandbox Code Playgroud)

现在我认为Randomize可能基于当前时间,因此我在调用generateCode()i的循环之前取出Randomize线并调用Randomize仍然无效!

Mar*_*ers 11

Randomize没有任何参数使用系统时间对伪随机数生成器进行种子处理.如果你很快多次调用它,系统时间就不会改变,所以你每次都要使用相同的种子重新初始化PRNG,给出相同的随机数.

您应该只在页面上调用一次Randomize,而不是多次.