繁体   English   中英

Python 3 os.urandom

[英]Python 3 os.urandom

我在哪里可以找到关于os.urandom的完整教程或文档? 我需要获取一个随机整数来从 80 个字符的字符串中选择一个字符。

如果您只需要一个随机整数,您可以使用random 模块中的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

可能不完全是主题,但我想帮助那些从搜索引擎来到这里的人。 要将os.urandom转换为整数,我正在使用它:

 import os

 rand = int(int(str(os.urandom(4), encoding="UTF-8")).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/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM