使用Python生成随机密码的示例分享
作者:goldensun 发布时间:2023-05-23 11:32:10
标签: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 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


猜你喜欢
- 魔法方法凡是在类内部定义,以“__开头__结尾”的方法都称之为魔法方法,又称“类的内置方法”, 这些方法会在某些条件成立时触发。经常用到的双
- 一、打开一个网页获取所有的内容from urllib import urlopendoc = urlopen("http://ww
- 1.Anaconda 安装python3.6conda create -n match python=3.6Python版本默认安装是 3.
- 将无权点文件转化成邻接矩阵目前点文件是两列Excel代码,在进行复杂网络运算时需要转化成邻接矩阵。我在网上找了一个代码,稍微修改了下,亲测可
- 目前搜索到的方法有:np.where(‘元素')还有就是pandas的方法:df.index(‘元素')但是第二个方法的问题
- 在 EeePC 上装了个 Mac OS X,相应的开发工具也选择了 Coda。在
- 概念softmax函数是常用的输出层函数,常用来解决互斥标签的多分类问题。当然由于他是非线性函数,也可以作为隐藏层函数使用反向传播求导可以看
- 本文主要介绍通过预训练的ImageNet模型实现图像分类,主要使用到的网络结构有:VGG16、InceptionV3、ResNet50、Mo
- 本文研究的主要是Python中optparser库的相关内容,具体如下。一直以来对optparser不是特别的理解,今天就狠下心,静下心研究
- 一、创建mysql数据库1.创建数据库语法--创建名称为“testdb”数据库,并设定编码集为utf8CREATE DATABASE IF
- 大多的MySQL都是装在Linux上的,而我们的本机上一般都会装MySQL-Front.那如何用MySQL-Front连接远端Linux系统
- 那么在集合函数中它有什么用呢 ?假设数据库有一张表名为student的表。如果现在要你根据这张表,查出江西省男女个数,广东省男生个数,浙江省
- 原文地址:30 Days of Mootools 1.2 Tutorials - Day 5 - Event HandlingMooTool
- numpy的log和ln函数每次当我想用python实现ln函数时,下意识的就会输入错误的函数代码,这里特来记录一下关于numpy中的ln和
- SQL中的单记录函数 1.ASCII 返回与指定的字符对应的十进制数; SQL> select ascii('A')
- 学习前言神经网络的应用还有许多,目标检测就是其中之一,目标检测中有一个很重要的概念便是IOU什么是IOUIOU是一种评价目标检测器的一种指标
- 大多数网站维护都采用“多人协作,共同管理”方式。某个人负责一个(或者多个)栏目,他只能对他负责的栏目进
- 说明1、当函数的参数太多,需要简化时,使用functools.partial可以创建一个新的函数。2、这个新的函数可以固定原始函数的部分参数
- 前言在做图像处理的时候,有时候需要得到整个数据集的均值方差数值,以下代码可以解决你的烦恼:(做这个之前一定保证所有的图片都是统一尺寸,不然算
- 注:本文涉及的是解压缩版的安装安装教程下载mysql地址是:http://dev.mysql.com/downloads/mysql/解压缩