Python创建用户并随机生成8位数密码

Python014

Python创建用户并随机生成8位数密码,第1张

#先验证方法,无法在系统创建用户(待优化)

import random

import string

import getpass

user1 =input('请您输入用户名: ')

user2 = string.digits+string.ascii_letters

def gen_pass(n =8):

        result=''

        for iin range(n):

                zd = random.choice(user2)

                result += zd

        return result

print(gen_pass())

#先把随机生成密码的脚本定义成模块,在调用里面的变量

import sys

import subprocess

import string

from pass2 import randpass      #pass2是之前python随机生成8位数密码脚本的名称,randpass是脚本里面的变量

def add_user(user,passwd,fname):

        # 判断用户是否存在

        result = subprocess.run('id %s &>/dev/null'% user,shell=True)

        if result.returncode ==0:

                print('用户已存在!')

                # return 类似于循环的 break,函数遇到return就结束了

                return

        # 创建用户,添加密码

        subprocess.run('useradd %s' % user,shell=True)

        subprocess.run('echo %s | passwd --stdin %s' % (passwd,user),shell=True)

        info ="""用户: %s

            密码: %s

            """ %(user,passwd)

        with open(fname,'a')as fobj:

                fobj.write(info)

if __name__ =='__main__':

                user = sys.argv[1]

                fname = sys.argv[2]

                passwd = randpass()

                add_user(user,passwd,fname)

import random

n=10 #固定密码位数,n=10

l=list(range(0,10))

for x in range (65,91) :

l.append(chr(x))

for x in range (97,123) :

l.append(chr(x))

key=''

for i in range(n):

key=key+str(random.choice(l))

print('密码是:'+ key)

import random

n=random.randint(8,15) #随机密码位数,8<=n<=15

l=list(range(0,10))for x in range (65,91) :

l.append(chr(x))

for x in range (97,123) :

l.append(chr(x))

key=''

for i in range(n):

key=key+str(random.choice(l))

print('密码是:'+ key)

import random,string 

n=int(input('请输入生成随机密码的个数n=') )   # n=10

m=int(input("请输入生成随机密码的长度m="))        # m=8

chars = string.ascii_letters + string.digits #生成['a',...,'z','A',...,'Z','0',...'9']

new_chars= ' '.join(chars)

ll=new_chars.split()

num=0

while num< n:

      random.shuffle(ll)

      list1=ll[:m]

      num+=1

      print(''.join(list1))

else:

     print('生成了%s个长度是%s的随机密码'% (n,m))

在python 3.5上运行,结果完全满足题的要求,也用了我一个多小时时间。