使用python去做一个生成随机码的页面

先说一下mkpasswd

linux里是自带生成密码的命令的,比较出名的一个是mkpasswd,另一个是passwdgen

mkpasswd命令是附属在expect模块里的,如图
paradin

passwdgen的话也要手动执行一下yum install -y passwdgen来安装命令。

这里主要说说mkpasswd,它支持如下几个参数:

1
2
3
4
5
-l       (length of password, default = 7)        指定密码的长度,默认是7位数
-d (min # of digits, default = 2) 指定密码中数字最少位数,默认是2位
-c (min # of lowercase chars, default = 2) 指定密码中小写字母最少位数,默认是2位
-C (min # of uppercase chars, default = 2) 指定密码中大写字母最少位数,默认是2位
-s (min # of special chars, default = 1) 指定密码中特殊字符最少位数,默认是1位

比如现在要生成一个含有“六位数字而且5位特殊字符的总共16位”的密码,那么命令就是:mkpasswd -l 16 -d 5 -s 5,再聚几个其他的例子,感受一下:

1
2
3
4
5
6
7
8
[root@zabbix General_LeChange_Chn_IS_V5.8.00.R.20170814]# mkpasswd -l 16 -d 5 -s 5
g]7Hu-L5,t+32%0m
[root@zabbix General_LeChange_Chn_IS_V5.8.00.R.20170814]# mkpasswd -l 16 -C 5
YvjtFWaV5jr8h%Wy
[root@zabbix General_LeChange_Chn_IS_V5.8.00.R.20170814]# mkpasswd -l 16 -s 10
qoB#^V_=/!??*59:
[root@zabbix General_LeChange_Chn_IS_V5.8.00.R.20170814]# mkpasswd -l 16 -c 4
9mJOqymatvg*n9sl

脚本在此

这个生成随机码的算法部分就使用上面那个mkpasswd了,省了我们不少事。

整个html界面的代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>随机密码生成器</title>
</head>
<body>
<form action="/cgi-bin/dropdown.py" method="post" target="_blank">
<select name="dropdown">

<h2>密码长度:</h2><option value="8" selected>8</option>
<option value="16">16</option>
<option value="20">20</option>
<option value="24">24</option>
<option value="48">48</option>
</select> <br />
<input type="checkbox" name="runoob" value="on" /> 包含小写字母 <br />
<input type="checkbox" name="google" value="on" /> 包含大写字母 <br />
<input type="checkbox" name="runoob" value="on" /> 包含数字 <br />
<input type="checkbox" name="google" value="on" /> 包含特殊字母 <br />
<input type="submit" value="提交"/> <br />
<h2>密码:</h2>
</form>
</body>
</html>

补充

再分享一个python生成密码的代码,但是这个密码不含特殊字符:

1
2
3
4
5
6
7
8
#!/usr/bin/env python
# -*- coding: utf-8 -*-

import random
import string

salt = ''.join(random.sample(string.ascii_letters + string.digits, 8))
print salt

参考资料

https://balajiommudali.wordpress.com/2015/11/27/unable-to-install-mkpasswd-on-centos-6-4/
http://www.runoob.com/python/python-cgi.html

感谢您请我喝咖啡~O(∩_∩)O,如果要联系请直接发我邮箱chenx1242@163.com,我会回复你的
-------------本文结束感谢您的阅读-------------