900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > python随机生成六位数密码_python生成6位包含数字和字母的密码

python随机生成六位数密码_python生成6位包含数字和字母的密码

时间:2023-05-29 19:20:57

相关推荐

python随机生成六位数密码_python生成6位包含数字和字母的密码

初学python,简单敲了几行生成6位包含数字和字母密码的代码

(我是在python 3上敲的)

首先理清思路:

1、包含数字和字母的六位口令共有36^6个

2、将0-9和a-z合成一个字符串pwd,用pwd[0-35]表示所有数字和小写字母,即

pwd[0]=0,pwd[1]=1…pwd[34]=y,pwd[35]=z

3、用0-36^6-1代表各个口令,

1->000001

2->000002

……

35->00000z

36->000010

……

36^6-1->zzzzzz

4、通过求模的方式从0到36^6-1得到36进制数(类似十进制,只不过逢36进一),

再通过36进制数得到pwd中代表的字符

num/36=a…b

m=pwd[b] 右边数第一个字符

num=a

依次循环6次,就可得到六位字符

举例详解:

取12345为例: 12345%36=33, pwd[33]='x', 12345//36=342

342%36=18, pwd[18]='i', 342//36=9

9%36=9, pwd[9]='9', 9//36=0

0%36=0, pwd[0]='0' 0//36=0

... pwd[0]='0' ...

... pwd[0]='0' ...

所以最终得到的字符串为xi9000,逆序后得到0009ix

敲代码:

#共两层循环

import string

pwd=string.digits+string.ascii_lowercase #string.digits就是0到9的数字,string.ascii_lowercase是小写字母

for i in range(36**6):

pp=''

for j in range(6): #取六位,每取一次,循环一次

a=i%36 #取余

pp=pp+pwd[a]

i=i//36 #'//'是取整,'/'会得到一个浮点数

if j==5:

print(pp[::-1]) #最先取到的字符反而是最低位(最右边)的,所以字符串逆序pp[::-1]

部分执行结果:

000000

000001

000002

000003

000004

000005

000006

000007

000008

000009

00000a

00000b

00000c

00000d

00000e

00000f

00000g

00000h

00000i

00000j

00000k

00000l

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。