37,720
社区成员
发帖
与我相关
我的任务
分享
import string,random
length=8
seedlower=string.lowercase
seeddigit=string.digits
seedupper=string.uppercase
pwd=pwdd=pwdl=pwdu=''
countl=random.randrange(1,length-1)
countu=random.randrange(1,length-countl)
countd=(length-countl-countu)
#生成随机的字符
for l in random.sample(seedlower,countl):
pwdl+=l
for u in random.sample(seedupper,countu):
pwdu+=u
for d in random.sample(seeddigit,countd):
pwdd+=d
#在随机位置出现随机的字符
seed=pwdl+pwdu+pwdd
shuffler=random.sample(seed,len(seed))
pwd="".join(shuffler)
print pwd
# Encoding: GBK
import random
maybe = '0123456789'\
'abcdefghijklmnopqrstuvwxyz'\
'ABCDEFGHIJKLMNOPQRSTUVWXYZ'\
'~!@#$%^&*()_+'
maybesize = len(maybe)
_D, _L, _U, _S = 1, 2, 4, 8
_FULL = _D |_L |_U |_S
_DLU_ = _D |_L |_U
def _rbit(p):
''' 生成一位随机码 '''
return maybe[random.randint(0,maybesize-1)]
def generate(l):
''' 生成指定长度的密码 '''
return ''.join(map(_rbit, xrange(l)))
def chk(pwd, chklogic = _FULL):
''' 按指定的逻辑检查给出的密码 '''
stat = 0
for c in pwd:
if c in 'abcdefghijklmnopqrstuvwxyz':
stat |= _L
elif c in 'ABCDEFGHIJKLMNOPQRSTUVWXYZ':
stat |= _U
elif c in '0123456789':
stat |= _D
elif c in '~!@#$%^&*()_+':
stat |= _S
return stat == chklogic
def groupGenerate(cnt, chklogic = _FULL):
''' 生成满足指定的检查逻辑要求的一组密码, cnt:指定个数 '''
pwds = []
while cnt:
pwd = generate(12)
if chk(pwd, chklogic):
pwds.append(pwd)
cnt -= 1
return pwds
if __name__ == '__main__':
print '\n'.join(groupGenerate(cnt = 10))
print '-'*32
print '\n'.join(groupGenerate(cnt = 10, chklogic = _DLU_))
import random
maybe = '0123456789'\
'abcdefghijklmnopqrstuvwxyz'\
'ABCDEFGHIJKLMNOPQRSTUVWXYZ'\
'~!@#$%^&*()_+'
maybesize = len(maybe)
_D, _L, _U, _S = 1, 2, 4, 8
_FULL = _D| _L| _U| _S
_DLU_ = _D| _L| _U
def _rbit(p): return maybe[random.randint(0,maybesize-1)]
def generate(l):
return ''.join(map(_rbit, xrange(l)))
def chk(pwd, chklogic = _FULL):
d, l, u, s = 0, 0, 0, 0
for c in pwd:
if c in 'abcdefghijklmnopqrstuvwxyz':
l = _L
elif c in 'ABCDEFGHIJKLMNOPQRSTUVWXYZ':
u = _U
elif c in '0123456789':
d = _D
elif c in '~!@#$%^&*()_+':
s = _S
return (l|u|d|s) == chklogic
def groupGenerate(cnt, chklogic = _FULL):
pwds = []
while cnt:
pwd = generate(12)
if chk(pwd, chklogic):
pwds.append(pwd)
cnt -= 1
print '\n'.join(pwds)
if __name__ == '__main__':
groupGenerate(cnt = 10)
print '-'*32
groupGenerate(cnt = 10, chklogic = _DLU_)
import random
maybe = '0123456789'\
'abcdefghijklmnopqrstuvwxyz'\
'ABCDEFGHIJKLMNOPQRSTUVWXYZ'\
'~!@#$%^&*()_+'
maybesize = len(maybe)
def rbit(p): return maybe[random.randint(0,maybesize-1)]
def rpwd(l): return ''.join(map(rbit, xrange(l)))
def tester():
for i in xrange(10):
print rpwd(8)
if __name__ == '__main__':
tester()