使用Python的secrets模块来生成随机字符串

2023-03-30 00:00:00 字符串 生成 模块

可以使用secrets模块中的secrets.token_hex(nbytes)或者secrets.token_urlsafe(nbytes)函数来生成随机字符串。

secrets.token_hex(nbytes)函数会生成一个包含nbytes个随机十六进制数的字符串,而secrets.token_urlsafe(nbytes)函数会生成一个包含nbytes个URL安全的随机字符的字符串。

例如,要生成一个包含32个随机字符的字符串,可以这样做:

import secrets

# 生成一个包含32个随机十六进制数的字符串
random_hex = secrets.token_hex(16)
print(random_hex)

# 生成一个包含32个URL安全字符的字符串
random_urlsafe = secrets.token_urlsafe(32)
print(random_urlsafe)

输出:

f5e0ecb1cfcb0f5e5d2cbdb9d9f8c7f5
vZwF7cGrbP-n8YjLq3vAze-s7vxSSm1X8H7s-tfZMHg

需要注意的是,nbytes参数指定了生成的随机字符串的长度,而不是字符数。由于secrets.token_hex()生成的是十六进制数,因此生成的字符串长度是nbytes*2,而secrets.token_urlsafe()生成的是URL安全字符,因此生成的字符串长度可能会稍微大于nbytes。

相关文章