python随机生成密码字符串_Python随机生成带特殊字符的密码
在日常运维中,如果涉及到用户管理,就一定会用到给用户设置密码的工作,其实吧,平时脑子里觉得设置个密码没什么,但要真让你随手敲一个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随机生成带特殊字符的密码相关推荐
- python随机生成12位数字_Python随机生成带特殊字符的密码
在日常运维中,如果涉及到用户管理,就一定会用到给用户设置密码的工作,其实吧,平时脑子里觉得设置个密码没什么,但要真让你随手敲一个12位带特殊字符的随机密码,也是很痛苦的事,如果让你敲10个这样的随机密 ...
- python随机生成一个数字_python随机生成
在数据分析中,数据的获取是第一步,numpy.random 模块提供了非常全的自动产生数据API,是学习数据分析的第一步. 总体来说,numpy.random模块分为四个部分,对应四种功能: 简单随机 ...
- python密码传参有特殊字符如何解决_python生成带特殊字符的密码
在日常运维中,如果涉及到用户管理,就一定会用到给用户设置密码的工作,其实吧,平时脑子里觉得设置个密码没什么,但要真让你随手敲一个12位带特殊字符的随机密码,也是很痛苦的事,如果让你敲10个这样的随机密 ...
- python中随机种子怎么用_Python 随机种子介绍,PyTorch 中随机种子的设置应用
随机种子是什么? 随机种子是针对 随机方法 而言的. 随机方法:常见的随机方法有 生成随机数,以及其他的像 随机排序 之类的,后者本质上也是基于生成随机数来实现的.在深度学习中,比较常用的随机方法的应 ...
- python自动生成word报告_python自动化生成分析报告,让你的工作效率提升10倍+
打开搜狗搜索APP,查看更多精彩资讯 如果你每天都需要输出分析报告,报告模式基本一致,只是更换里面的分析数据,每天重复着同样的工作,费时费力,工作能力没有丝毫的提升,但是如果你学过python,你就可 ...
- python按年月日输出字符串_python日期时间转为字符串或者格式化输出的实例
python日期时间转为字符串或者格式化输出的实例 如下所示: 年月日时分秒 >>> print datetime.datetime.now().strftime("%Y- ...
- python 只取年月日 字符串_Python基础:数据类型和变量amp;字符串和编码
Python基础:1.数据类型和变量 数据类型 计算机顾名思义就是可以做数学计算的机器,因此,计算机程序理所当然地可以处理各种数值.但是,计算机能处理的远不止数值,还可以处理文本.图形.音频.视频.网 ...
- python处理多行字符串_python多行字符串
Python中如何处理长代码格式化问题,如何提高格式化输出的长字符串的可读性? 当我们需要格式化输出一个很长的字符串的时候,都写在一行显得很难看,而且可读性也很差:当我们使用链式的语法写代码的时候常常 ...
- python读取路径中字符串_python实现提取str字符串/json中多级目录下的某个值
字符串多级目录取值: 比如说: 你response接收到的数据是这样的. 你现在只需要取到itemstring 这个字段下的值.其他的都不要! 思路就是:字符串是个json格式(或转为json格式), ...
最新文章
- 晕死!博客园把我搞晕了!
- 成功将用intelli idea 建立的项目打包成jar文件,并在Linux上成功运行
- Navicat for MySQL 连接 Mysql 8.0.11 出现1251- Client does not support authentication protocol 错误
- [系统安全] 四十一.APT系列(6)Python解析PE文件并获取时间戳判断来源区域
- 定时插座动一下就断_使用插座定时器在某些时候自动将您的Amazon Echo静音
- Android Studio开发基础之细节问题笔记
- 【李宏毅机器学习】Introduction of ELMO、BERT、GPT(p25) 学习笔记
- 【java】变量的应用
- 当Python遇上HDF5--性能优化实战
- MPU6050误差分析
- 使用 GitHub Pages 和 Hexo 以及 Aurora 主题搭建静态个人博客
- Asp开发中出现“msxml3.dll 错误 ‘800c0005‘系统未找到指定的资源
- 订单信息无法识别,建议联系卖家。 错误码:INVALID_PARAMETER
- fps射击HTML网页游戏,关于Unity中FPS第一人称射击类游戏制作(专题十)
- 华为打造的智慧办公“新物种”,为何在央视节目露脸?
- vue中el-radio-group点击事件,双击取消
- vue大文件下载(下载进度展示)
- vimdiff 快捷键
- knockoutjs中的visible绑定
- 最新版大学英语六级词汇打印版