生成随机密码这件事情用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 string

def 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 string

def 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 string

class 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 < 0 and locate: where = self.data.find(locate) locate = locate[1:] c = self.data[where+len(locate)+1] if not c.islower(): c = random.choice(string.lowercase) self.chars.append(c) def __str__(self): return ''.join(self.chars) if __name__ == '__main__': import sys ##如果带参数的话可以定义生成密码的次数,长度,追溯记录## if len(sys.argv) > 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 string

class 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 < 0 and locate: where = self.data.find(locate) locate = locate[1:] c = self.data[where+len(locate)+1] if not c.islower(): c = random.choice(string.lowercase) self.chars.append(c) def __str__(self): return ''.join(self.chars) if __name__ == '__main__': import sys ##如果带参数的话可以定义生成密码的次数,长度,追溯记录## if len(sys.argv) > 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

python设置默认密码_使用Python生成随机密码的示例分享相关推荐

  1. python设置环境变量_小白Python进行中

    一.安装 安装包的下载 在官网进行下载,我选用Python3.8.0. Welcome to Python.org​www.python.org 安装 安装的时候可以借鉴该视频. Windows 10 ...

  2. java随机产生密码_用Java生成随机密码的方法

    最近各种数据库泄露问题,让我不得不考虑自身密码的强度,下面特意写两种生成密码的方法,已被日后之用: 介绍两种生成随机密码的方式:(在密码字典里面,可以根据实际需要,手工注释不需要生成的字符段) 方式一 ...

  3. python中怎么设置默认值_在Python中设置应该是列表的参数的默认值的最佳实践?...

    我有一个将列表作为参数的python函数.如果我将参数的默认值设置为如下空列表: def func(items=[]): print items 皮林特会告诉我"危险的默认值[]作为参数&q ...

  4. python设置图片透明度_学习python第40天

    今天是在尚学堂学习python第40天今天学习了CSS 中常用样式总结,边框的风格,css中的定位,盒模型,css3中的选择器,css3中常用的属性 CSS 中常用样式总结 字体:(font) 字体的 ...

  5. python如何隐藏密码_在python脚本中隐藏密码(仅限不安全的混淆)

    Base64编码是在标准库中,并将停止肩膀冲浪者: >>> import base64 >>> print base64.b64encode("passw ...

  6. python破解qq密码_央·python编程之QQ数据清洗

    一般我们从网上下下来的数据都很杂乱的,什么样的情况都有,不利于我们整理,所以在拿到数据的时候我们会先做一遍数据清理,把垃圾数据清理掉. 今天我们拿QQ数据做示范. 我们命令行是怎么看数据! [Asm] ...

  7. python input 默认值_在python中为dictionary创建默认值

    让我们有一个方法来缓存它计算的结果. "If"方法:def calculate1(input_values): if input_values not in calculate1. ...

  8. python设置默认utf8编码_Python设置默认编码为utf8的方法

    本文实例讲述了python设置默认编码为utf8的方法.分享给大家供大家参考,具体如下: 这是Python的编码问题,设置python的默认编码为utf8 python安装目录:/etc/python ...

  9. python数据类型定义为_一Python 数据类型

    变量.字符编码 1:声明变量: #_*_coding:utf-8_*_ #__author__:"shikai" name="shikai" #变量名:name ...

最新文章

  1. 给wmnp升级php和nginx的方法
  2. Android View之间的触摸事件传递图
  3. 如何用笔记本建立wifi热点
  4. java中的serializable_java中的Serializable接口的作用
  5. JQuery实现广告效果(滚动切换)
  6. 【华为云技术分享】【DevCloud · 敏捷智库】如何利用核心概念解决估算常见问题
  7. 用eclipse开发flex程序--- 配置eclipse(flex builder 3.0)
  8. centos操作系统版本获取
  9. Atitit 索引法 html文件转txt纯文本索引 适用于 evernote索引,导入imap邮箱,方便检索 /sumdoclist/src/aPkg/html2txtIndexFile.jav
  10. Symbian 项目
  11. 小波分析 瞬态信号 matlab,小波变换在瞬态信号波至点检测中的应用研究
  12. 微信小程序轮播图swiper使用
  13. 如何做好手机APP测试?APP测试流程及解决方案
  14. Ubuntu各个版本下载和安装
  15. centos c++ mysql_腾讯云Linux CentOS C++连接MySQL
  16. insert 锁表 mysql_mysql insert锁机制【转】
  17. 最简单判断工作日/节假日API
  18. 【windows】中下载并安装Python(简单明了)
  19. ASEMI大功率场效应管和三极管的区别
  20. 知识图谱本体建模工具Protege使用教程

热门文章

  1. 【知了堂学习笔记】MySQL数据库常用的SQL语句整理
  2. Bringing up interface eth0: Device eth0 does not seem to be presen
  3. linux 修改消息队列大小
  4. Depth-first Search深度优先搜索专题4
  5. java xpath 解析xml_使用XPATH解析XML文件
  6. 推荐系统——矩阵分解FM
  7. python爬取bilibili弹幕_python爬虫:bilibili弹幕爬取+词云生成
  8. ubuntu没有指纹登录_ubuntu安装指纹识别驱动
  9. 关于linux内核的有关叙述中,下列关于嵌入式Linux系统内核的叙述正确的是()。
  10. mysql memcached 使用场景_memcache 应用场景