随机字符串
import random
import secrets
import string
def generate_random_str(length=6):
"""
生成指定长度的随机字符串
一般用于验证码
"""
# 纯数字的随机字符串
print(''.join(random.sample(string.digits, length)))
# 纯小写字母的随机字符串
print(''.join(random.sample(string.ascii_lowercase, length)))
# 纯大写字母的随机字符串
print(''.join(random.sample(string.ascii_uppercase, length)))
# 混合数字和大小写字母的随机字符串
str_source = string.digits + string.ascii_lowercase + string.ascii_uppercase
print(''.join(random.sample(str_source, length)))
def generate_random_key(length=None):
"""
生成随机密钥
一般用于安全密钥, 例如Flask的Secret Key
"""
# 返回长度length的随机字节字符串, length默认是32
print(secrets.token_bytes(length))
# 返回长度length*2的随机16进制字符串, length默认是32
print(secrets.token_hex(length))
# 返回一个经过Base64编码后的URL安全的字符串
# length默认是32, 但经过Base64编码长度不确定
print(secrets.token_urlsafe(length))
if __name__ == '__main__':
generate_random_str()
generate_random_key()
输出:
063582
yqctlu
QHXYOM
UxcjHt
b'\xb5\xc7\xa7b\xd3\xc6\xfa^\xa2\xbe\xcaP\x19\x82G+9\xac\xf7\xc5\xc6\xb3i\x0e\x8a\xddzH\xb0\xf3\xc2J'
58a595f814c34a90254c17f7b02986bc603c0972811d386d6d4ef86e9e45a4a8
ablQClbICKIjHYmEGYtqKo-ZT9CmlbXxrXL1FyiGc3E