Ale*_*der 1 php security random hash prng
在我的应用程序中,我需要一个函数来生成(不可预测的)随机值,每次调用时都会不同,例如在快速循环内.
在作为平台的Linux平台上,我将发布我的脚本(其中的PHP应在SSL下运行)我将通过查询/ dev/random,可能与OpenSSL结合,将可能的多个工具结合起来以确保种子或哈希是完全随机的设施并包括特定于系统的值,例如上次修改的脚本和创建时间.
我正在使用这些特定的值,因为即使人A有脚本并且知道方法,他们也无法猜测(/ dev/random内容,此刻的内存使用情况,可能的修改时间等)并且不会实际上能够降低运行相同脚本的用户B的安全性.
在Windows平台上,我不得不暂时开发(我仍然在Linux上测试,但不经常测试)我需要上面描述的随机值,只是为了提供至少有限的保护来预测种子或密钥.
我尝试过第一次尝试memory_get_usage()(使用或不true使用PHP的'true'内存使用的可用参数),并且即使每次迭代执行相当大量的内存繁重计算,它们似乎仍然是非常静态的.
使用这种(有点动态的)内存使用作为种子,PRNG生成更多(快速)随机数可能是明智的吗?或者记忆是如此有限的范围,他们可以创建2 ^ xx种子并大致猜测它..我开始模糊现实的随机线,如果甚至可以猜测我的操作,即使他们是'不'真的那么随意.
Windows上/dev/random(或通常推荐的 /dev/urandom)Unix设备的标准等效项是CryptGenRandomCryptoAPI 的功能.
在PHP中,你应该能够使用mcrypt_create_iv()同MCRYPT_DEV_URANDOM,它使用/dev/urandom在Unix和(显然)CryptGenRandom在Windows上.
| 归档时间: |
|
| 查看次数: |
1709 次 |
| 最近记录: |