一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

Python生成随机密码的几个示例

时间:2014-08-25 编辑:简简单单 来源:一聚教程网

之前写了篇shell生成随机密码,为了后续更加自动化,部分工作已经转到python的自动化运维上来处理,那么很多原来shell工具就得转化
以下是python写的生成随机密码,用到的知识点为:random用于生成随机数,sys用于获取命令行的参数,默认不加参数的时候,生成16位的密码,还需还可以改进的地方有:
1、生成密码的级别,比如只生成数字或小写字母等

 

 代码如下 复制代码
[root@liufofu python]# cat ff_mkpasswd.py
#!/usr/bin/env python
#coding=utf-8
##########################################
######### descprition ##################
# 1.make random password
# 2.
########################################
import sys
import random
 
def print_usage():
    help_info='''
NAME:
ff_mkpasswd.py
 
SYNTAX:
ff_mkpasswd.py arg1
 
FUNCTION:
make random password
 
'''
def mk_random_passwd(arylist,rlen):
    randpasswd=""
    i=0
    while i         rindex=int(random.random()*10000)%len(arylist)
        randpasswd=randpasswd+str(arylist[rindex])
        i=i+1
    return randpasswd
 
 
if __name__=='__main__':
    arylist=['a','b','c','d','e','f','g','h','k','l','m','n','o'
    ,'p','q','r','s','t','u','v','w','x','y','z'
    ,0,1,2,3,4,5,6,7,8,9,'!','@','#','$','%','^','&','*','(',')','_','='
    ,'+','[',']','{','}','.','<','>','?'
    'A','B','C','D','E',',F','G','H','I','J','K','L','M','N','O','P','R','S',
    'T','U','V','W','X','Y','Z']
    rlen=0
    if len(sys.argv)<2:
        rlen=16
    else:
        if sys.argv[1].isdigit():
            rlen=int(sys.argv[1])
        else:
            rlen=16
 
 
    print mk_random_passwd(arylist,rlen)
 
调用结果如下:
[root@liufofu python]# ./ff_mkpasswd.py    
$[2Zg%%WcG4&t.sk
[root@liufofu python]# ./ff_mkpasswd.py 5
vZm#$
[root@liufofu python]# ./ff_mkpasswd.py 10
43nMLo%Noz
[root@liufofu python]# ./ff_mkpasswd.py 1
^
[root@liufofu python]# ./ff_mkpasswd.py 2
2N

例子2

 代码如下 复制代码

#-*- coding:utf-8 -*-
'''
简短地生成随机密码,包括大小写字母、数字,可以指定密码长度
'''
#生成随机密码
from random import choice
import string

#python3中为string.ascii_letters,而python2下则可以使用string.letters和string.ascii_letters

def GenPassword(length=8,chars=string.ascii_letters+string.digits):
    return ''.join([choice(chars) for i in range(length)])

if __name__=="__main__":
    #生成10个随机密码   
    for i in range(10):
        #密码的长度为8
        print(GenPassword(8))


例子3

 代码如下 复制代码

#!/usr/bin/env python
# -*- coding:utf-8 -*-
#导入random和string模块
import random, string
def GenPassword(length):
    #随机出数字的个数
    numOfNum = random.randint(1,length-1)
    numOfLetter = length - numOfNum
    #选中numOfNum个数字
    slcNum = [random.choice(string.digits) for i in range(numOfNum)]
    #选中numOfLetter个字母
    slcLetter = [random.choice(string.ascii_letters) for i in range(numOfLetter)]
    #打乱这个组合
    slcChar = slcNum + slcLetter
    random.shuffle(slcChar)
    #生成密码
    genPwd = ''.join([i for i in slcChar])
    return genPwd
if __name__ == '__main__':
    print GenPassword(6)

热门栏目