在日常开发中,添加一个管理用户等等场景,经常需要设置用户密码,有时候为了保证密码强度,也是费劲脑汁想各种组合,时而也会找网上的在线密码生成器来解决,在此则完全不用,郑重推荐如下脚本,生成密码串后会自动拷贝,再在需用到的地方自己粘贴即可,脚本如下:
#!/usr/bin/python # -*- coding: utf-8 -*- import string import sys import random import subprocess alnums = [x for x in string.letters + string.digits if x not in ('0', 'o', '1', 'l')] # 产生除了特殊字符之外的样本 def genpass(n=16): """ 产生随机密码,默认长度为16个字符 """ passwd = list() for i in range(n): passwd += random.choice(alnums) return ''.join(passwd) def write_to_clipboard(output): """ 把output内容复制到剪贴板 """ process = subprocess.Popen('pbcopy', env={'LANG': 'en_US.UTF-8'}, stdin=subprocess.PIPE) process.communicate(output.encode('utf-8')) def main(): if len(sys.argv) == 1: passwd = genpass(25) print(passwd) write_to_clipboard(passwd) elif len(sys.argv) == 2: try: n = int(sys.argv[1]) except ValueError: print 'Input length of the password' else: passwd = genpass(n) print(passwd) write_to_clipboard(passwd) else: print 'Only need a argument: length of the password' if __name__ == '__main__': main()
去打赏