我在aws的Windows实例上有一个工作计划程序。该作业运行一个py脚本,该脚本有时会使用randint生成一个随机数。该作业每7小时运行一次,经过一个完整的周期后,它开始生成与第一次运行时相同的随机数。
from random import randint
def randHosp():
return randint(1, 1442)
这是一个返回随机数的函数,只是对randint函数的简单调用。
我知道它会根据时间生成随机数,有没有办法我可以更改它?
最佳答案
假设每次机器可用的熵源都相同时,实例是从同一图像启动的。例如系统时钟,PID,硬件状态
您可以查询一些外部来源,例如https://pypi.org/project/ntplib/并将其用作random.seed()
的种子。
请注意,将时间单独用作种子的一个警告是根据您给定的时间表可以预测的。
Alternativley,将randHosp
函数重写为AWS Lambda函数
参见本文进行类似的讨论:
https://security.stackexchange.com/questions/90101/dev-random-in-ec2-cloud