Python 3中os.urandom(Python 3 os.urandom)

2019-08-02 06:54发布

我在哪里可以找到os.urandom一个完整的教程或文档? 我需要得到得到一个随机的int选择80字符的字符串字符

IM上的老迈ASPIRE 5920乳宁的Ubuntu 12.04

Answer 1:

如果你只需要一个随机整数,你可以使用random.randint(a, b)从随机模块 。

如果你需要它加密的目的,使用random.SystemRandom().randint(a, b)这使得使用os.urandom()

import random

r = random.SystemRandom()
s = "some string"
print(r.choice(s)) # print random character from the string
print(s[r.randrange(len(s))]) # same


Answer 2:

也许不完全是对的话题,但我想帮助那些来到这里,从搜索引擎。 要转换os.urandom到我使用这个整数:

 import os

 rand = int(os.urandom(4).encode('hex'), 16)
 # You can then 'cycle' it against the length.
 rand_char = chars_list[rand % 80] # or maybe '% len(chars_list)'

注:这里的指数的范围达到一个4字节的整数。 如果您想了解更多,变化4到更大的价值。

当时的想法是从这里取: https://pythonadventures.wordpress.com/2013/10/04/generate-a-192-bit-random-number/



文章来源: Python 3 os.urandom