Python实现随机密码生成器
运维过程中经常需要用到随机密码,例如服务器、Mysql、Redis等密码的设置,用随机密码会相对安全一点。这里使用Python来实现一个随机密码生成器
认识random模块random模块可以从多个字符中随机先出一个字符,我们可以把所有数字放到一个字符串里,random.choice能够从中随机选出一个数字,如下
>>> import random>>> random.choice('1234567890')'9'>>> random.choice('1234567890')'2'
写个循环随机生成
假如我们需要生成30位随机密码,包含数字、大小写字母、特殊符号。我们可分为四种,然后随机生成并且放到列表里,程序如下:
import randomresult = []for i in range(0, 20): if i % 4 == 0: result.append(random.choice('1234567890')) if i % 4 == 1: result.append(random.choice('abcdefghijklmnopqrstuvwxyz')) if i % 4 == 2: result.append(random.choice('ABCDEFGHIJKLMNOPQRSTUVWXYZ')) if i % 4 == 3: result.append(random.choice('!$%()+,-.:;>?@[]`{}'))print("".join(result))
执行结果如下:
[root@devops root]# python /tmp/shijiange.py 0iQ+3eC]5oA}0aJ@2mJ:[root@devops root]# python /tmp/shijiange.py 0qX>9cG-4pY`3tT.0gN`[root@devops root]# python /tmp/shijiange.py 1xN%3rG{6aA]0cD.2nL-[root@devops root]# python /tmp/shijiange.py 5jB]1xA]2yW,5vM:0bH%
把随机密码打乱
由于循环生成的密码,第一个是数字,第二个是小写字母,第三个是大写字母,第四个是字符。虽然比较复杂,但有点规律,我们可以把20个字母随机打乱。
import randomresult = []for i in range(0, 20): if i % 4 == 0: result.append(random.choice('1234567890')) if i % 4 == 1: result.append(random.choice('abcdefghijklmnopqrstuvwxyz')) if i % 4 == 2: result.append(random.choice('ABCDEFGHIJKLMNOPQRSTUVWXYZ')) if i % 4 == 3: result.append(random.choice('!$%()+,-.:;>?@[]`{}'))random.shuffle(result)print("".join(result))
随机生成密码,运行结果如下,每次运行都生成随机密码:
[root@devops ~]# python /tmp/shijiange.py h37;XMo$w;lpAQ7:J.08[root@devops ~]# python /tmp/shijiange.py 1ptQ%8c:ED7C8[m$(7yD[root@devops ~]# python /tmp/shijiange.py `ri0+(CwP3Wd0P}-4Yj2[root@devops ~]# python /tmp/shijiange.py qLcJ-F2>)S0K11{fq$q8
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。