利用python制作密码生成器
1 问题如何使用python制作一个密码生成器。2 方法通过类的程序来生成一个非常随机的密码代码清单 1def get_upper():count = random.randint(1, 3)return random.choices('ABCDEFGHIJKLMNOPQRSTUVWXYZ', k=count)def get_special_char():'''生成...
·
1 问题
如何使用python制作一个密码生成器。
2 方法
通过类的程序来生成一个非常随机的密码
代码清单 1
def get_upper(): count = random.randint(1, 3) return random.choices('ABCDEFGHIJKLMNOPQRSTUVWXYZ', k=count) def get_special_char(): ''' 生成特殊符号 :return: ''' count = random.randint(1, 3) return random.choices('!@$%^&*()_+~', k=count) def get_lower(count): ''' 生成小写字母和数字 :param count: :return: ''' string = 'abcdefghijklmnopqrstuvwxyz0123456789' return random.choices(string, k=count) def generate_password(length): ''' 生成指定长度的密码 :param length: :return: ''' if length < 6: length = 6 lst = [] upper_lst = get_upper() # 大写 special_char = get_special_char() # 特殊字符 lst.extend(upper_lst) lst.extend(special_char) surplus_count = length - len(lst) lower_lst = get_lower(surplus_count) lst.extend(lower_lst) # 将顺序打乱 random.shuffle(lst) return ''.join(lst) import random def get_upper(): ''' 生成大写字母 :return: ''' count = random.randint(1, 3) return random.choices('ABCDEFGHIJKLMNOPQRSTUVWXYZ', k=count) def get_special_char(): ''' 生成特殊符号 :return: ''' count = random.randint(1, 3) return random.choices('!@$%^&*()_+~', k=count) def get_lower(count): ''' 生成小写字母和数字 :param count: :return: ''' string = 'abcdefghijklmnopqrstuvwxyz0123456789' return random.choices(string, k=count) def generate_password(length): ''' 生成指定长度的密码 :param length: :return: ''' if length < 6: length = 6 lst = [] upper_lst = get_upper() # 大写 special_char = get_special_char() # 特殊字符 lst.extend(upper_lst) lst.extend(special_char) surplus_count = length - len(lst) lower_lst = get_lower(surplus_count) lst.extend(lower_lst) # 将顺序打乱 random.shuffle(lst) return ''.join(lst) if __name__ == '__main__': print(generate_password(8)) print(generate_password(5)) print(generate_password(12)) |
3 结语
针对利用python制作密码生成器的问题,提出类的方法,通过程序设计实验,证明该方法是有效的,本文较为基础,算法较为模糊,在后期完善中可以将算法做的更为简单和清晰,增加更多的功能,例如能够写出一个代码简便美观的程序。
更多推荐
已为社区贡献9条内容
所有评论(0)