使用Python生成随机密码的示例分享

生成随机密码这件事情用python来干确实相当的方便,优美的string方法加上choice简直是绝配
make_password.py

###简单几行代码执行即可生成记不住的字符串###$ python make_passwd.py DLrw9EiT Qs4Wm84q RQwl4L2L u9g0LgwW jHPtYdyU ...

登录后复制

$ python make_passwd.py DLrw9EiT Qs4Wm84q RQwl4L2L u9g0LgwW jHPtYdyU ...

登录后复制

代码如下——注释比代码长

#!/usr/bin/python #--coding:utf-8--# #------------------------------------------------------------------------------- # Name: make_passwd # # Author: LiuSha # # Created: 28/12/2014 # Copyright: (c) WDZJ-SA 2014 #------------------------------------------------------------------------------- from random import choice import stringdef Makepass(length=8, chars=string.letters+string.digits): return ''.join([choice(chars) for i in range(length)])if __name__ == '__main__': for i in range(10): print Makepass()##下例基本上就是这个小脚本的所有工作核心了,使用random模块的choice方法取string模块生成的字符串## >>> string.letters 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ' >>> string.digits '0123456789'>>> choice(string.digits) '4' >>> choice(string.letters) 'T'##有关生成器可参考:http://www.ipython.me/python/python-generator.html###!/usr/bin/python #--coding:utf-8--# #------------------------------------------------------------------------------- # Name: make_passwd # # Author: LiuSha # # Created: 28/12/2014 # Copyright: (c) WDZJ-SA 2014 #------------------------------------------------------------------------------- from random import choice import stringdef Makepass(length=8, chars=string.letters+string.digits): return ''.join([choice(chars) for i in range(length)])if __name__ == '__main__': for i in range(10): print Makepass()##下例基本上就是这个小脚本的所有工作核心了,使用random模块的choice方法取string模块生成的字符串## >>> string.letters 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ' >>> string.digits '0123456789'>>> choice(string.digits) '4' >>> choice(string.letters) 'T'##有关生成器可参考:http://www.ipython.me/python/python-generator.html##

登录后复制

 
生成一些人似乎能好记一些的密码(Qs4Wm84q这种密码似乎除了复制粘贴没有别的选择,话说前年我使用shell生成的类似的密码给ldap做默认密码,我当时公司就真有员工把这样的密码背下来了,现在想想真心是厉害~~~)。

##这样看起来是比上面的好记一点了吧,但需要提供一个字典文件##$ python make_dictpass.py 1 8 1 ipythosd$ python make_dictpass.py nahontchen chenyibfeo ipythoniue coreostche ...$ python make_dictpass.py 1 8 1 ipythosd$ python make_dictpass.py nahontchen chenyibfeo ipythoniue coreostche ...

登录后复制

代码如下

#!/usr/bin/python #--coding:utf-8--# #------------------------------------------------------------------------------- # Name: make_dictpass # # Author: LiuSha # # Created: 28/12/2014 # Copyright: (c) WDZJ-SA 2014 #------------------------------------------------------------------------------- import random import stringclass passwd(): data = open('./word.txt').read().lower() def renew(self, n, maxmem=3): self.chars = [] for i in range(n): randspot = random.randrange(len(self.data)) self.data = self.data[randspot:] + self.data[:randspot] where = -1 locate = ''.join(self.chars[-maxmem:]) while where  1: dopass = int(sys.argv[1]) else: dopass = 8 if len(sys.argv) > 2: length = int(sys.argv[2]) else: length = 10 if len(sys.argv) > 3: memory = int(sys.argv[3]) else: memory = 3 onepass = passwd() for i in range(dopass): onepass.renew(length,memory) print onepass

登录后复制

##字典文件(可以是各种单词的组合)## $ cat word.txt chenyi itchenyi python ipython coreos coreos.me ipython.me

登录后复制

#!/usr/bin/python #--coding:utf-8--# #------------------------------------------------------------------------------- # Name: make_dictpass # # Author: LiuSha # # Created: 28/12/2014 # Copyright: (c) WDZJ-SA 2014 #------------------------------------------------------------------------------- import random import stringclass passwd(): data = open('./word.txt').read().lower() def renew(self, n, maxmem=3): self.chars = [] for i in range(n): randspot = random.randrange(len(self.data)) self.data = self.data[randspot:] + self.data[:randspot] where = -1 locate = ''.join(self.chars[-maxmem:]) while where  1: dopass = int(sys.argv[1]) else: dopass = 8 if len(sys.argv) > 2: length = int(sys.argv[2]) else: length = 10 if len(sys.argv) > 3: memory = int(sys.argv[3]) else: memory = 3 onepass = passwd() for i in range(dopass): onepass.renew(length,memory) print onepass

登录后复制

##字典文件(可以是各种单词的组合)## $ cat word.txt chenyi itchenyi python ipython coreos coreos.me ipython.me

登录后复制

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2535744.html

(0)
上一篇 2025年3月5日 23:05:07
下一篇 2025年3月5日 23:05:24

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • 玩转python爬虫之URLError异常处理

    本节在这里主要说的是urlerror还有httperror,以及对它们的一些处理。 1.URLError 首先解释下URLError可能产生的原因: 网络无连接,即本机无法上网 连接不到特定的服务器 服务器不存在 在代码中,我们需要用try…

    编程技术 2025年3月5日
    200
  • 玩转python爬虫之cookie使用方法

    之前一篇文章我们学习了爬虫的异常处理问题,那么接下来我们一起来看一下cookie的使用。 为什么要使用Cookie呢? Cookie,指某些网站为了辨别用户身份、进行session跟踪而储存在用户本地终端上的数据(通常经过加密) 比如说有些…

    2025年3月5日
    200
  • 使用Python的PIL模块来进行图片对比

    在使用google或者baidu搜图的时候会发现有一个图片颜色选项,感觉非常有意思,有人可能会想这肯定是人为的去划分的,呵呵,有这种可能,但是估计人会累死, 开个玩笑,当然是通过机器识别的,海量的图片只有机器识别才能做到。 那用python…

    编程技术 2025年3月5日
    200
  • python编码最佳实践之总结

    相信用python的同学不少,本人也一直对python情有独钟,毫无疑问python作为一门解释性动态语言没有那些编译型语言高效,但是python简洁、易读以及可扩展性等特性使得它大受青睐。  工作中很多同事都在用python,但往往很少有…

    编程技术 2025年3月5日
    200
  • Python在Console下显示文本进度条的方法

    进度条实现原理 进度条和一般的print区别在哪里呢?答案就是print会输出一个\n,也就是换行符,这样光标移动到了下一行行首,接着输出,之前已经通过stdout输出的东西依旧保留,而且保证我们在下面看到最新的输出结果。进度条不然,我们必…

    编程技术 2025年3月5日
    200
  • Python的GUI框架PySide的安装配置教程

    (一)说在前面     Python自带了GUI模块Tkinter,只是界面风格有些老旧。另外就是各种GUI框架了。     之前安装过WxPython,并做了简单的界面。遂最近又重新搜索了一下网上关于Python GUI框架的问题,发现还…

    2025年3月5日
    200
  • 学习python之编写简单乘法口诀表实现代码

    实现代码一、 #!/usr/bin/pythonx,y=9,9 lst=[(x,y,str(y)+’X’+str(x)+’=’+str(x*y)) for x in range(1,y+1) for y in range(1,x+1)]fo…

    编程技术 2025年3月5日
    200
  • 轻松实现python搭建微信公众平台

    本文主要是一步一步教大家如何利用python搭建微信公众平台,有兴趣的朋友可以参考一下 使用的工具,python 新浪SAE平台,微信的公众平台 你需要先在微信的公众平台与新浪SAE平台上各种注册,微信平台注册的时候需要你拍张手持身份证的照…

    2025年3月5日 编程技术
    200
  • 十条建议帮你提高Python编程效率

    程序员的时间很宝贵,python这门语言虽然足够简单、优雅,但并不是说你使用python编程,效率就一定会高。要想节省时间、提高效率,还是需要注意很多地方的。 今天就与大家分享资深Python程序员总结的10点建议,帮助大家大幅节省开发时间…

    2025年3月5日
    200
  • Python批量创建迅雷任务及创建多个文件

    其实不是真的创建了批量任务,而是用python创建一个文本文件,每行一个要下载的链接,然后打开迅雷,复制文本文件的内容,迅雷监测到剪切板变化,弹出下载全部链接的对话框~~ 实际情况是这样的,因为用python分析网页非常,比如下载某页中的全…

    编程技术 2025年3月5日
    200

发表回复

登录后才能评论