工作中经常要生成随机密码,参考了一些网上的做法,自己用python写了个小脚本,非常小巧。

#! /usr/bin/env python
# -*- coding: utf-8 -*-
#@author jinqinghua@gmail.com
#@version 2012-11-07import string
from os import urandom
from random import choice'''
Linux正则命名参考:http://vbird.dic.ksu.edu.tw/linux_basic/0330regularex.php#lang
[:alnum:]   代表英文大小写字节及数字,亦即 0-9, A-Z, a-z
[:alpha:]   代表任何英文大小写字节,亦即 A-Z, a-z
[:blank:]   代表空白键与 [Tab] 按键两者
[:cntrl:]   代表键盘上面的控制按键,亦即包括 CR, LF, Tab, Del.. 等等
[:digit:]   代表数字而已,亦即 0-9
[:graph:]   除了空白字节 (空白键与 [Tab] 按键) 外的其他所有按键
[:lower:]   代表小写字节,亦即 a-z
[:print:]   代表任何可以被列印出来的字节
[:punct:]   代表标点符号 (punctuation symbol),亦即:" ' ? ! ; : # $...
[:upper:]   代表大写字节,亦即 A-Z
[:space:]   任何会产生空白的字节,包括空白键, [Tab], CR 等等
[:xdigit:]  代表 16 进位的数字类型,因此包括: 0-9, A-F, a-f 的数字与字节Python自带常量(本例中改用这个,不用手工定义了)
string.digits          #十进制数字:0123456789
string.octdigits       #八进制数字:01234567
string.hexdigits       #十六进制数字:0123456789abcdefABCDEF
string.ascii_lowercase #小写字母(ASCII):abcdefghijklmnopqrstuvwxyz
string.ascii_uppercase #大写字母(ASCII):ABCDEFGHIJKLMNOPQRSTUVWXYZ
string.ascii_letters   #字母:(ASCII)abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
string.punctuation     #标点符号:!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~以下的不用,有locale问题
string.lowercase       #abcdefghijklmnopqrstuvwxyz
string.uppercase       #ABCDEFGHIJKLMNOPQRSTUVWXYZ
string.letters         #ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz以下的不能用
string.whitespace      #On most systems this includes the characters space, tab, linefeed, return, formfeed, and vertical tab.
string.printable       #digits, letters, punctuation, and whitespace
'''#请在此设置您要生成的密码需求
passwd_length = 20 #密码长度
passwd_count = 100 #密码个数
passwd_seed = string.digits + string.ascii_letters + string.punctuation #密码种子
#passwd_seed = string.digits
#passwd_seed = string.digits + string.ascii_lettersdef generate_passwd():'''Function to generate a password'''passwd = []while (len(passwd) < passwd_length):passwd.append(choice(passwd_seed))return ''.join(passwd)def print_string_constants():'''Test Case'''print string.digitsprint string.octdigitsprint string.hexdigitsprint string.ascii_lowercaseprint string.ascii_uppercaseprint string.ascii_lettersprint string.punctuationprint string.lowercaseprint string.uppercaseprint string.lettersprint (string.printable + "ooo")print string.whitespaceprint '\n\n'if __name__ == '__main__':#print_string_constants()for i in range(0, passwd_count):print generate_passwd()#print "\ndone...python is great!"

密码生成效果:

rWvR1MsPtso&9}K:.F[m
<pgLB~EfD_N1bgkAlr\:
*>,S;B5}_,MIlF894\z9
o[lW{gOxF8aE5rR{b=*}
kC4VedLzt>HaZ12)_c+k
88f@Gqto8.I[EiKh!TnI
0Rcf:#[SQd0G$lHh1HX~
6VL<Vcu^E?]+5|!VpMRm
-MqkDuMFt8Y-FvIl&s<W
H)J]@@y%}3]~oOBy#8'D
49=+Ct;GCrpWx%iJ2(h8
f&GU9(;1zrEuvw"y"SK7
{JsiN:5*q<VEp_i>Y(0<
oEC<P3&Z3Q=l6]RKivB&
W,]p,4rG%#DgYMWN5dMS
txw0MLG<.p'!"T+4rK*0
zf3zaaJ4lN8+_Gru9I6{
g)w%B~l3TQqJn:VE)<>c
pk^~;bmOP-[1wb%O?~W}
Oh_[u6Lb"R2*bD^C|~oo
;b\UDBm/~S|}Z~OwN@QX
79aZ/SGT:QDsRX6h/J?M
XvC~KLyUJ"SY6P"$g.j0
dJ,Q(+vaPW":Ny.a*SwG
!<;?&Ll[qXdu%`\e$P/0
~l\ef(~9~1?:KhO_@`H}
QR&m!\?g"^0LNoOlTVnm
fl3V>}oe-"$Is9[dd#!J
*#&4)_UXCz;n-u-X&euB
5A]E&W~{EG_H$xfm,<rc
k,@F^eZYgSN/_w(~->K|
H1n[gK%9ElbQg!-CsY;l
p3mgSw7{Wi+>R`'oc=%\
*o(l2Q,o_15x{x15m6hv
"2T[!`@O&s5,2c]$b-Jy
RPV$G-Rr^q/Od!5@dWzB
4kiRe5{$'qr78FN8fgsD
e;[M'~#7vpS8[7(#_,0G
7:ahGwZ9+'ad(cq|szg/
CaPvnTzt])?SyyqHmI]_
`,)Otgv4<~va-`6fE1[s
p,I$3,W}PCrk9sD}o@.S
tEe)2tS(OB6QsE~)eWG7
#VK5#>as+84=sx8:\9%C
F0,L2*^W:M}oU")3r*-r
9r.2vnGJ]"\]B=<;DXT7
TuK=Hd-(&fl"pK[]9h4,
zLe9SN8>K!>N#VO^A/YJ
A}cC_{]ju|PvBmb`A)J"
-aL/HQ;Tnnd_&0MRbT[^
*N%)L[qk1Zf.{Ph|H>n.
.53z[dDrZcS;i5PFI2SV
B!B0z]:`q@OLGy9NDJVg
ujpb#$t&K$nLL)}xlz&7
cVJ,V6^>l86W3`9vC2B0
cR7M3373"iB)qG:OW5oa
Xcc9goIx;L_gMevUzU&h
y!qlkZ>O],+V?vJ*4]\o
:4=eXARf~f5qe.]/(Ck1
8z5!migmA#;gi+Rp.0yg
]<*wXqAA`9:iu)1T|b;~
Ln8j5e5s5>LTCeBr(Nu:
;9$.!;x2`.PWkad~Q:Y/
("C6r5W90=._56N@n)27
Q,&O)miW^5JE)QtmVap*
=\%DA`'6IcjtDa#]J;}c
t@Kw$.JMK;-O,H'CS?w}
"/;J7g/$XRe[]a<DFzG(
&##xArJD?TS0AIbBhC5]
.7:HKV%j+1H*#Q[86^fx
%NsHCQliRDn"JWLOd_9a
Yt/r;}NM~qNRwlgre`y&
({Ur@HS<O*0#|Y|UWA[+
.kh?KiQ#7@@q}\1{<nZ>
|r6pE>G(gOrmtd!ASCO,
8wgqFm'&XN'A$SjS6jLa
M)%#BK8_r%0Wc0\8och4
?LR/r]OAU-!SLHLyCZC0
TfZ*!O)|{Gn19*&s1JGk
3i7UFCg)$G'4Dl>e5r0|
5?\~{HtP?J-ayla}#-L.
"#w#h_rWYtb:L&Qxj~!s
'+bSF)9wFf@>or){9{wY
ikz?LE[g<i.Dy)`',ce<
q;T\[.l}(U!QE(Vq<nMa
1rj8C.^'Gc~lLSQ_Pw%'
VfzQB:'i.)x%@!kG`f%-
EuaC$ro6mm<(<MUZaoND
ehb.p'x&U3U#H3]w`OEx
C!Dra6+'6c2,.crs{k#2
f-wclsh_Vako#_x-CC*]
77S8v#GV3c~9j!H2&Or"
PWl<uW2/IGw$40Z1IR"x
s6{tP"Tde'}h)!|BAlu5
tS%X1l~rC-Zlz!cf#iEM
(N;^\\3ZnM:[Ms~Mc>xr
4m8Yv#8{t[=9lRFt,R39
'%T1YG)Ye4W-Dh&-dw:s
_JE[x)5rY]-'9-!y^`-E
]{ldr76gE,}()wSb)r*G

python写的小巧的(14行有效代码)随机密码生成小脚本工具相关推荐

  1. 【用python写一个Magicka1(初代魔能)游戏的小脚本】

    Magicka小脚本 magicka是一个十分好玩的小游戏,奈何需要手动搓魔法,本人经常记错咒语导致紧要关头常常被boss直接击杀(惨),不过这些现在都不重要了,因为我写了一个小脚本,可以直接一键放技 ...

  2. python程序员的浪漫-千行生日祝福代码

    python程序员的浪漫-千行生日祝福代码

  3. sql行数少于10_如何用少于100行的代码创建生成艺术

    sql行数少于10 by Eric Davidson 埃里克·戴维森(Eric Davidson) 如何用少于100行的代码创建生成艺术 (How to Create Generative Art I ...

  4. java2048小游戏源码及解析_200行java代码实现2048小游戏

    本文实例为大家分享了java实现2048小游戏的具体代码,供大家参考,具体内容如下 效果图: 游戏介绍: 1.2048是一款益智类小游戏,刚开始随机出现两个数字,可以上下左右控制数字的移动. 2.当选 ...

  5. python电影评论情感分析_20行Tensorflow代码实现电影评论情感分析

    原标题:20行Tensorflow代码实现电影评论情感分析 背景 情感分析有很多的应用场景,比如做一个电商网站,卖家需要时刻关心用户对于商品的评论是否是正面的.再比如做一个电影的宣传和策划,电影在键盘 ...

  6. 用Python写一个将Python2代码转换成Python3代码的批处理工具

    之前写过一篇如何在windows操作系统上给.py文件添加一个快速处理的右键功能的文章:<一键将Python2代码自动转化为Python3>,作用就是为了将Python2的文件升级转换成P ...

  7. 用Python写一个一到一百的循环代码

    下面是一个用 Python 写一个从 1 到 100 的循环代码的示例: for i in range(1,101):print(i) 这个代码使用了 Python 中的 for 循环语句和 rang ...

  8. 用java写ods系统_基于数据库的代码自动生成工具,生成JavaBean、生成数据库文档、生成前后端代码等(TableGo v7.0.0版)...

    TableGo是基于数据库的代码自动生成工具,低代码编程技术的实现,可以零代码自动生成SpringBoot项目工程.生成JavaBean.生成前后端分离的CRUD代码.生成MyBaits的Mapper ...

  9. shell 获取 mysql 行数_一个Shell小脚本精准统计Mysql每张表的行数实现

    前言 对于开发或者运维人员来说,Mysql数据库每张表的数量肯定是要了解下,有助于我们清理无用数据或者了解哪张表比较占用空间. 另外多次统计表的行数,还能发现Mysql表的增量情况,能够预测表未来会有 ...

最新文章

  1. 2012年上半年网工考试试题分析
  2. libevent源码深度剖析十
  3. 使用JDBCTemplate实现与Spring结合,方法公用 ——Spring配置(applicationContext.xml)
  4. 配置Struts2的异常处理
  5. 理解 python 装饰器
  6. 上海应用技术大学计算机专业分数线,上海应用技术大学2016年上海市各专业录取分数线...
  7. python是一门高级的计算机语言_为有抱负的开发者推荐的最佳 10 门编程语言
  8. Nginx+Tomcat搭建高性能负载均衡集群
  9. linux 学习笔记 -vim 操作
  10. 实践torch.fx第一篇——基于Pytorch的模型优化量化神器
  11. 使用 processon 画 UML 图
  12. vscode代码拼写错误检测插件
  13. word文档去掉复制过来的背景颜色
  14. C#中,想要获得我的Windows中“我的文档”,以及桌面等,文件夹的路径。
  15. 摆脱“咖喱味”,让Win11的右键菜单回归经典
  16. 网络软件-管理网络设备和组件
  17. 毫米波雷达的硬件架构与射频前端
  18. python上机编程报告_Python程序设计实验报告六:函数
  19. 我的计算机生涯--开始
  20. Python读写zip压缩文件

热门文章

  1. Kubernetes集群环境搭建全过程
  2. python无法初始化设备_【无法初始化这个硬件设备驱动程序】无法初始化这个硬件的设备驱动_无法初始化d3d...
  3. STA静态时序分析——学习笔记
  4. 卡尔卡西25首练习曲简析-音阶与音程训练
  5. 黑暗之光第2章:角色创建(魔法师和剑士)
  6. 不同格式文件之间的相互转化
  7. Java实现生成csv文件并导入数据
  8. dede采集插件自动采集文章图片自定义接口
  9. Inserting操作导致死锁Oracle
  10. 数据分析的绩效应该这样来考核