相关疑难解决方法(0)

随机几乎没有随意?

我这样做是为了测试randint的随机性:

>>> from random import randint
>>>
>>> uniques = []
>>> for i in range(4500):  # You can see I was optimistic.
...     x = randint(500, 5000)
...     if x in uniques:
...         raise Exception('We duped %d at iteration number %d' % (x, i))
...     uniques.append(x)
...
Traceback (most recent call last):
  File "<stdin>", line 4, in <module>
Exception: We duped 887 at iteration number 7
Run Code Online (Sandbox Code Playgroud)

我尝试了大约10倍以上,我得到的最好结果是在转发器之前迭代了121次.这是您从标准库中获得的最佳结果吗?

python random birthday-paradox

74
推荐指数
8
解决办法
4万
查看次数

没有额外模块的Python AES加密

是否可以使用AES加密/解密数据而无需安装额外的模块?我需要发送/接收数据C#,这些数据是用System.Security.Cryptography参考加密的.

更新 我尝试使用PyAES,但这太旧了.我更新了一些东西以使其成功,但事实并非如此.我也无法安装,因为它的最新版本是3.3我的版本3.4.

python aes python-3.4

11
推荐指数
3
解决办法
3万
查看次数

python的随机数生成是否容易重现?

我在标准库中阅读python的随机模块.令我惊讶的是,当我设置种子并产生一些随机数时:

random.seed(1)
for i in range(5):
    print random.random()
Run Code Online (Sandbox Code Playgroud)

产生的数字与文章中的样本完全相同.我认为可以肯定地说,当种子设置时,算法是确定性的.

当种子未设置时,标准库种子用time.time().现在假设一个在线服务用于random.random()生成验证码,黑客可以使用相同的随机生成器轻松地重现验证码吗?

  1. 让我们假设黑客知道将随机数转换为验证码的算法.否则,似乎很不可能.
  2. 由于在导入模块时调用random.seed(),我假设对于Web应用程序,用作种子的时间大约是发送请求的时间(在几秒钟内),因此不难进行校准几次尝试?

我是否担心太多,或者这是一个真正的漏洞?

python security random web

5
推荐指数
3
解决办法
4353
查看次数

标签 统计

python ×3

random ×2

aes ×1

birthday-paradox ×1

python-3.4 ×1

security ×1

web ×1