Python随机生成带特殊字符的密码


Posted in Python onMarch 02, 2016

在日常运维中,如果涉及到用户管理,就一定会用到给用户设置密码的工作,其实吧,平时脑子里觉得设置个密码没什么,但要真让你随手敲一个12位带特殊字符的随机密码,也是很痛苦的事,如果让你敲10个这样的随机密码,我估计要人要疯了,所以这事不适合人干,但机器最做这个最拿手,今天我们就来学习一段python脚本,可以直接生成自己需要的密码,且密码长度,数字,字符个数随意你指定,废话不多说了,我们直接看代码:

#!/usr/bin/env python
import string
from itertools import chain
from random import choice, sample
def mkpasswd(length=12, digits=4, upper=3, lower=3):
lowercase = string.lowercase
uppercase = string.uppercase
salt = '!@#$%^&*()><?'
password = list(
chain(
(choice(uppercase) for _ in range(upper)),
(choice(lowercase) for _ in range(lower)),
(choice(string.digits) for _ in range(digits)),
(choice(salt) for _ in range((length - digits - upper - lower)))
)
)
return "".join(sample(password, len(password)))
if __name__ == '__main__':
print mkpasswd()
#!/usr/bin/env python
import string
from itertools import chain
from random import choice, sample
def mkpasswd(length=12, digits=4, upper=3, lower=3):
lowercase = string.lowercase
uppercase = string.uppercase
salt = '!@#$%^&*()><?'
password = list(
chain(
(choice(uppercase) for _ in range(upper)),
(choice(lowercase) for _ in range(lower)),
(choice(string.digits) for _ in range(digits)),
(choice(salt) for _ in range((length - digits - upper - lower)))
)
)
return "".join(sample(password, len(password)))
if __name__ == '__main__':
print mkpasswd()

脚本逐行解释,最开始几行导入了需要的模块,接下来定义一个mkpasswd的函数,函数的参数可以设置密码长度,数字、大写和小写字符的个数,接下来是函数主题部分:

利用string模块的属性生成大小写字符串,salt是特殊字符集(支持自己添加),我们重点说password的生成,它首先是一个列表,因为调用了list()工厂函数,chain()函数的功能是将一组迭代器对象连接起来,chain()里有三个生成器表达式,每个表达式调用for循环,然后随机选择指定个数的字符,可能大家有看到for循环中有一个_(下划线),这个下划线有什么作用呢?我就不卖关子了,其实它啥作用也没有,我自己理解为用不到的变量,这种写法大家以后也可以用,比如你在循环的时候用不到这个变量,就可用用_(下划线)来表示。

函数最后是return连接后的字符串,sample()函数是从随机样本中取出自己指定的样本个数,需要两个参数,一个是样本,一个是取多少,取的过程是随机的,其实在这个脚本中这个函数没有发挥它完全的功能,因为生成的password就是12位的,然后在取出12位,不存在从大样本中取出小样本的工作,但起到了随机的功能,所以生成的密码是字符都是随机的。

关于Python随机生成带特殊字符的密码就给大家介绍到这里,希望对大家有所帮助!

Python 相关文章推荐
python base64 decode incorrect padding错误解决方法
Jan 08 Python
进一步探究Python的装饰器的运用
May 05 Python
Python正则表达式经典入门教程
May 22 Python
Python中表达式x += y和x = x+y 的区别详解
Jun 20 Python
Python将多份excel表格整理成一份表格
Jan 03 Python
浅谈python的深浅拷贝以及fromkeys的用法
Mar 08 Python
python障碍式期权定价公式
Jul 19 Python
详解如何从TensorFlow的mnist数据集导出手写体数字图片
Aug 05 Python
python颜色随机生成器的实例代码
Jan 10 Python
解决Python数据可视化中文部分显示方块问题
May 16 Python
Python 捕获代码中所有异常的方法
Aug 03 Python
利用Pycharm + Django搭建一个简单Python Web项目的步骤
Oct 22 Python
Python设计模式编程中Adapter适配器模式的使用实例
Mar 02 #Python
Python打造出适合自己的定制化Eclipse IDE
Mar 02 #Python
设计模式中的原型模式在Python程序中的应用示例
Mar 02 #Python
深入解析Python设计模式编程中建造者模式的使用
Mar 02 #Python
举例讲解Python设计模式编程中对抽象工厂模式的运用
Mar 02 #Python
实例讲解Python设计模式编程之工厂方法模式的使用
Mar 02 #Python
详解设计模式中的工厂方法模式在Python程序中的运用
Mar 02 #Python
You might like
php radio 单选框获取与保持值的实现代码
2010/05/15 PHP
Apache 配置详解(最好的APACHE配置教程)
2010/07/04 PHP
php上传图片到指定位置路径保存到数据库的具体实现
2013/12/30 PHP
PHP中的魔术方法总结和使用实例
2015/05/11 PHP
PHP导入导出Excel代码
2015/07/07 PHP
extJs 文本框后面加上说明文字+下拉列表选中值后触发事件
2009/11/27 Javascript
遨游,飞飞,IE,空中网 浏览器无提示关闭方法
2011/07/11 Javascript
Javascript实现带关闭按钮的网页漂浮广告代码
2014/01/12 Javascript
邮箱下拉自动填充选择示例代码附图
2014/04/03 Javascript
javascript 控制input只允许输入的各种指定内容
2014/06/19 Javascript
如何书写高质量jQuery代码(使用jquery性能问题)
2014/06/30 Javascript
js中split和replace的用法实例
2015/02/28 Javascript
JQuery EasyUI的使用
2016/02/24 Javascript
JavaScript学习小结之被嫌弃的eval函数和with语句实例详解
2016/08/01 Javascript
浅谈jQuery中的checkbox问题
2016/08/10 Javascript
js鼠标跟随运动效果
2017/03/11 Javascript
微信小程序中显示html格式内容的方法
2017/04/25 Javascript
Webpack path与publicPath的区别详解
2018/05/03 Javascript
python中__call__方法示例分析
2014/10/11 Python
Python处理JSON数据并生成条形图
2016/08/05 Python
深入理解Python中range和xrange的区别
2017/11/26 Python
python读写LMDB文件的方法
2018/07/02 Python
解决pycharm remote deployment 配置的问题
2019/06/27 Python
Django ForeignKey与数据库的FOREIGN KEY约束详解
2020/05/20 Python
Python 测试框架unittest和pytest的优劣
2020/09/26 Python
CSS3属性选择符介绍
2008/10/17 HTML / CSS
能否解释一下XSS cookie盗窃是什么意思
2012/06/02 面试题
介绍一下你对SOA的认识
2016/04/24 面试题
妇女儿童发展规划实施方案
2014/03/16 职场文书
授权委托书公证
2014/09/14 职场文书
领导干部作风建设总结
2014/10/23 职场文书
2014幼儿园保育员工作总结
2014/11/10 职场文书
奖金申请报告模板
2015/05/15 职场文书
2015年大学迎新工作总结
2015/07/16 职场文书
python实现自动化群控的步骤
2021/04/11 Python
CSS几步实现赛博朋克2077风格视觉效果
2021/06/16 HTML / CSS