# 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,数字,大小写,特殊字符至少都要有一位 代码如下 生...