# python
import random
# 取字范围 可自定义调整
POOL_NUMBER = tuple(chr(i) for i in range(ord('0'), ord('9') + 1))
POOL_LOW_CHAR = tuple(chr(i) for i in range(ord('a'), ord('z') + 1))
POOL_UP_CHAR = tuple(chr(i) for i in range(ord('A'), ord('Z') + 1))
POOL_SYMBOL_CHAR = ('!', '%', '&', '-', '.', '@', '[', '/', ']', '_', '^', '`', '~')
POOL_LIST = [POOL_NUMBER, POOL_LOW_CHAR, POOL_UP_CHAR, POOL_SYMBOL_CHAR]
def gen_passwd(length: int = 16) -> str:
max_count = sum([len(_) for _ in POOL_LIST])
assert len(POOL_LIST) <= length <= max_count, ValueError(length, max_count)
pool_list = [list(_) for _ in POOL_LIST]
char_list = []
for list_ in pool_list:
random.shuffle(list_)
char_list.append(list_.pop(0))
all_char = sum(pool_list, [])
random.shuffle(all_char)
char_list += all_char[:length - len(POOL_LIST)]
random.shuffle(char_list)
return ''.join(char_list)
if __name__ == '__main__':
print(gen_passwd())
生成包含大小写符号数字随机密码 (Python)
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- python 通过assic编码格式生成随机大小写和数字密码。 尽可能减少库的依赖实现目标,这里只含一个随机库, ...
- 这应该是全网最简单的密码检测的吧,不需要任何的三方库也不需要正则判断,就是原生的字符串函数。唯一的缺点是一行代码太...
- 调用例子1: randomString() 输出1: JopzU1pJ7zu8E0d51JamTfE6IPLOGu...
- 需求如下: 生成包含数字,大小写和特殊字符的字符串,总长度为8,数字,大小写,特殊字符至少都要有一位 代码如下 生...