一个合格的、安全的密码应该是小写字母、大写字母、数字及符号混合的,并且长度适当。网上有很多用于生成密码的工具如 LastPass 密码生成器、1Password 密码生成器,下面就用 Python 来自己编写一个密码生成工具。
代码如下
import random import sys # TODO 弱密码检测 # TODO 密码所用字符自定义 def pwd_gen(length=8): az = list('abcdefghijklmnopqrstuvwxyz') cap_az = [x.upper() for x in az] num = list('1234567890') sign = list('!@#$%^&*') pass_items = [az, cap_az, num, sign] password = '' loop_times = length while loop_times: item_type = random.randint(1, 4) password += random.choice(pass_items[item_type-1]) loop_times -= 1 return password if __name__ == "__main__": try: max_length = sys.argv[1] except IndexError: print(pwd_gen()) else: print(pwd_gen(max_length))
以上代码可以实现自动生成指定位数的密码,所用字符包含大小写字母、数字及符号,符合强密码的要求。
当然这个小程序也有需要完善的地方,比如需增加弱密码检测,需要可以自由选择密码选用哪几种字符,毕竟还有很多网站或服务的密码是不支持特殊符号的。
转载请注明:云深不知处 » 用 Python 编写一个随机密码生成器