head -c 500 /dev/urandom | tr -dc abcdefghijklmnopqrstuvwxyz | head -c 9; echo
我认为主要的问题是/ dev / urandom,因为我听说过CryptoAPI,但是我不知道这是否足够安全。
编辑:对不起,在PHP脚本中使用的代码, %s
代表一个stringreplace; 当我问这个问题时,我忘了做这个replace。 固定。
取自RFC 4086:
7.1.3。 Windows CryptGenRandom
微软对广泛部署的Windows操作系统的用户的建议通常是使用与CryptAPI密码服务提供商的CryptGenRandom伪随机数生成呼叫。 这取得了一个加密服务提供程序库的句柄,一个指向调用者可以提供熵的缓冲区的指针,并且所生成的伪随机性被返回到该缓冲区中,并且指示需要多少个八位字节的随机性。
Windows CryptAPI加密服务提供程序为每个用户存储一个种子状态变量。 当CryptGenRandom被调用时,这与在调用中提供的任意随机性以及与诸如进程ID,线程ID,系统时钟,系统时间,系统计数器,内存状态,空闲磁盘簇和散列用户的各种系统和用户数据环境块。 这些数据全部送入SHA-1,输出用于接收RC4密钥流。 该密钥流用于产生请求的伪随机数据并更新用户的种子状态变量。
Windows“.NET”用户可能会发现使用RNGCryptoServiceProvider.GetBytes方法接口更容易。