预测python的随机模块随机生成的值
randcrack的Python项目详细描述
#Randcrack–Python随机模块破解器/预测器
[![构建状态](https://travis-ci.org/tnany/python-random-module-cracker.svg?branch=master)(https://travis ci.org/tna0y/python random module cracker)
![pypi](https://img.shields.io/pypi/v/randcrack.svg)
![pypi-python版本](https://img.shields.io/pypi/pyversions/randcrack.svg)
![pypi-implementation](https://img.shields.io/pypi/implementation/randcrack.svg)
此脚本能够预测python的“random”模块随机生成的值。
在**2.7.12**。享受吧!
然而,这个生成器并不是被设计成加密安全的。您不应该在关键应用程序中用作加密方案的prng。
您可以[在维基百科](https://en.wikipedia.org/wiki/mersenne_twister)上了解有关此生成器的更多信息。
它从生成器中获得前624个32位数字,并获得最可能的mersenne twister矩阵状态,即内部状态。从这一点出发,生成器应该与cracker同步。
你必须在新种子出现之后,或者在624*32位产生之后,给饼干喂食,因为每624个32位数字生成器都会改变它的状态,饼干被设计成从某个状态的开始喂食。
提交624个整数后,它将不再需要任何时间,并准备好预测新数字。
Cracker可以使用以下方法预测新数字,这些方法的工作原理与“random”模块中的同辈完全相同,但没有“predict”前缀。这些是:`predict_getrandbits`,`predict_randbow`,`predict_randbrange`,`predict_randint`和`predict_choice`
**注意:*cracker不实现'random()'函数的预测,因为它基于基于`/dev/urandom`的'os.urandom'模块。
下面是一个示例用法:
``python
import random,Randcrack导入Randcrack的时间
random.seed(time.time())
>r.submit(random.getRandbibi位(32))
;可以用random.randint(0429494949676729294)或random.ranranranranranranranranrange(0429494949494967294)填充,也可以用random.random.randent(042949494949494949494967672929294)填充,打印(04random.random.randum我是说,4294967295),rc.预测范围(04294967295))
````
**输出**
`````
随机结果:127160928
cracker结果:127160928
````
cracker不是绝对准确的。它能够在第一代**624**32位上执行接近**100%**的精度,在第一代**1000**上执行接近**~99.5%**的精度,在第一代**10000**上执行接近**~95%**的精度,然后数字降到**~50%**精确到第**50000**代。
[![构建状态](https://travis-ci.org/tnany/python-random-module-cracker.svg?branch=master)(https://travis ci.org/tna0y/python random module cracker)
![pypi](https://img.shields.io/pypi/v/randcrack.svg)
![pypi-python版本](https://img.shields.io/pypi/pyversions/randcrack.svg)
![pypi-implementation](https://img.shields.io/pypi/implementation/randcrack.svg)
此脚本能够预测python的“random”模块随机生成的值。
在**2.7.12**。享受吧!
然而,这个生成器并不是被设计成加密安全的。您不应该在关键应用程序中用作加密方案的prng。
您可以[在维基百科](https://en.wikipedia.org/wiki/mersenne_twister)上了解有关此生成器的更多信息。
它从生成器中获得前624个32位数字,并获得最可能的mersenne twister矩阵状态,即内部状态。从这一点出发,生成器应该与cracker同步。
你必须在新种子出现之后,或者在624*32位产生之后,给饼干喂食,因为每624个32位数字生成器都会改变它的状态,饼干被设计成从某个状态的开始喂食。
提交624个整数后,它将不再需要任何时间,并准备好预测新数字。
Cracker可以使用以下方法预测新数字,这些方法的工作原理与“random”模块中的同辈完全相同,但没有“predict”前缀。这些是:`predict_getrandbits`,`predict_randbow`,`predict_randbrange`,`predict_randint`和`predict_choice`
**注意:*cracker不实现'random()'函数的预测,因为它基于基于`/dev/urandom`的'os.urandom'模块。
下面是一个示例用法:
``python
import random,Randcrack导入Randcrack的时间
random.seed(time.time())
>r.submit(random.getRandbibi位(32))
;可以用random.randint(0429494949676729294)或random.ranranranranranranranranrange(0429494949494967294)填充,也可以用random.random.randent(042949494949494949494967672929294)填充,打印(04random.random.randum我是说,4294967295),rc.预测范围(04294967295))
````
**输出**
`````
随机结果:127160928
cracker结果:127160928
````
cracker不是绝对准确的。它能够在第一代**624**32位上执行接近**100%**的精度,在第一代**1000**上执行接近**~99.5%**的精度,在第一代**10000**上执行接近**~95%**的精度,然后数字降到**~50%**精确到第**50000**代。