|
|
第1行: |
第1行: |
| python生成随机密码
| | #重定向 [[Python email 电子邮件]] |
| | |
| == 起因==
| |
| <pre>早上帮虾哥搞个mysql 一时不知要用什么密码比较好,于是想到这几天在学习python 那就让万能的python出来吧 哈哈
| |
| | |
| string模块中的3个函数:string.letters,string.printable,string.printable。以下是这几个函数的输出,大家可以看一下,不用多讲:
| |
| | |
| In [1]: import string
| |
| In [2]: string.letters
| |
| Out[2]: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'
| |
| | |
| In [3]: string.digits
| |
| Out[3]: '0123456789'
| |
| | |
| In [4]: string.printable
| |
| Out[4]: '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~ \t\n\r\x0b\x0c'</pre>
| |
| | |
| ==主体 ==
| |
| === 主体代码===
| |
| <pre>以下是随机生成4组包含数字、大小写字母的随机数生成方法,大家可以指定随机数的长度:
| |
| | |
| #!/usr/bin/python
| |
| #-*- coding:utf-8 -*-
| |
| '''
| |
| make_password.py
| |
| 简短地生成随机密码,包括大小写字母、数字,可以指定密码长度
| |
| '''
| |
| #生成随机密码
| |
| import random
| |
| import string
| |
| #python3中为string.ascii_letters,而python2下则可以使用string.letters和string.ascii_letters
| |
| def GenPassword(length):
| |
| chars=string.ascii_letters+string.digits
| |
| return ''.join([random.choice(chars) for i in range(length)])#得出的结果中字符会有重复的
| |
| #return ''.join(random.sample(chars, 15))#得出的结果中字符不会有重复的
| |
| if __name__=="__main__":
| |
| #生成10个随机密码
| |
| for i in range(4):
| |
| #密码的长度为15
| |
| print GenPassword(15)
| |
| </pre>
| |
| ===代码解说===
| |
| <pre>
| |
| | |
| 首先是join
| |
| In [35]: str='-'
| |
| In [36]: seq =['x','y','z']
| |
| In [37]: print str.join(seq);
| |
| x-y-z
| |
| | |
| #所有字母和数字
| |
| In [30]: chars=string.ascii_letters+string.digits
| |
| | |
| In [31]: chars
| |
| Out[31]: 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'
| |
| | |
| ##随机选择两个字符
| |
| In [32]: [random.choice(chars) for i in range(2)]
| |
| Out[32]: ['5', 'l']
| |
| | |
| In [33]: [random.choice(chars) for i in range(2)]
| |
| Out[33]: ['Q', 'v']
| |
| | |
| #把字符 串在一起 中间没有空格哦 | |
| In [34]: ''.join([random.choice(chars) for i in range(2)])
| |
| Out[34]: '9x'
| |
| </pre>
| |
| | |
| | |
| ==参考==
| |
| http://wangwei007.blog.51cto.com/68019/1224833
| |
| | |
| http://www.ttlsa.com/python/python-random-password/
| |
| | |
| python join 和 split的常用使用方法
| |
| http://wangwei007.blog.51cto.com/68019/1100587
| |
| http://www.runoob.com/python/att-string-join.html
| |
| | |
| [[category:python]]
| |