生成字符串,条件:1 指定长度,2 8-32位数字、英文字母大小写或特殊符号(至少包含3种)
# test.py
import random
import re
from string import ascii_letters, digits
def gen_str(length):
"""
生成字符串,条件:1 指定长度,2 8-32位数字、英文字母大小写或特殊符号(至少包含3种)
"""yp
allowed_chars = ascii_letters + digits + r"_!/@#$%^&`~()\-+="
str_res = ""
flag = True
while flag:
temp = [random.SystemRandom().choice(allowed_chars) for i in range(length)]
str_res = "".join(temp)
check_reg = r'^(?![a-zA-Z0-9]+$)(?![A-Z0-9_!/@#$%^&`~()\\\-+=]+$)(?![a-zA-Z_!/@#$%^&`~()\\\-+=]+$)(?![a-z0-9_!/@#$%^&`~()\\\-+=]+$)[a-zA-Z0-9_!/@#$%^&`~()\\\-+=]{8,32}$'
flag = True if not re.match(check_reg, str_res) else False
return str_res
str_abc = gen_str(10)
print(str_abc)
"""
运行结果:
[root@Chasing-Dreams ~]# python test.py
9@4n+bMtz^
"""

该Python脚本定义了一个函数gen_str,用于生成指定长度(8-32位)的随机字符串,包含数字、ASCII字母和特殊符号,且至少包含三种字符类型。使用了random库和正则表达式进行校验。
3535

被折叠的 条评论
为什么被折叠?



