为什么要做这个
一个字,懒
其实是有一段血泪史的,从开学以来,好多地方需要用到用户登录,有许多比较重要,统一用同一个密码不是很安全,用不同密码记录又比较麻烦,今天刚好有空,就及时止损吧。
代码
削微写一点注释吧
import random
import os
print ("A.生成一个密码\nB.查询密码\n")
def listp():
global list1
global list2
global list4
global list5
list1 = ["A","a"]
list2 = ["B","b"]
list4 = ["Y","y"]
list5 = ["N","n"]
def secn():
global sec1
global sec2
sec1_1 = "a,A,b,B,c,C,d,D,e,E,f,F,g,G,h,H,i,I,j,J,k,K,l,L,m,M,n,N,o,O,p,P,q,Q,r,R,s,S,t,T,u,U,v,V,w,W,x,X,y,Y,z,Z"
sec2_2 = "_,@,#,$,%,^,&,*,!,-"
sec1 = sec1_1.split(",")
sec2 = sec2_2.split(",")
#实现查询
def search(x,y):
global xh
global val
ser = 0
while True:
if x[ser] == y:
val = True
xh = ser
break
else:
ser = ser+1
listp()
cho = input (">")
if cho in list1:
print ("几位的密码?")
x = int(input (">"))
print ("是否需要特殊符号?Y/N ")
#要特殊符号
cho1 = input (">")
if cho1 in list4:
while True:
secn()
#特殊符号里面单独再选一下选,保证其至少有1个特殊符号
y_6 = random.sample(sec1+sec2, x-1)
y_7 = random.sample(sec1, 1)
#数据处理
y_5 = y_6+y_7
y_1 = ','.join(y_5)
y_2 = y_1.replace("[","")
y_3 = y_2.replace("]","")
y_4 = y_3.replace("\'","")
y = y_4.replace(",","")
print ("\n已生成:"+"\n"+str(y))
print ("\n是否采用?")
cho2 = input (">")
#采用即循环一次结束,不采用循环给出新的密码
if cho2 in list4:
print ("这是哪里的密码")
wfu = input (">")
#建一个txt文件,保存最终密码
file = open ("密码.txt", 'a+', encoding = 'utf-8')
file.write (wfu+":\n"+str(y)+"\n\n")
file.close
print ("任务已完成")
break
#不要特殊符号
if cho1 in list5:
#同理
while True:
secn()
y_5 = random.sample(sec1, x-1)
y_1 = ','.join(y_5)
y_2 = y_1.replace("[","")
y_3 = y_2.replace("]","")
y_4 = y_3.replace("\'","")
y = y_4.replace(",","")
print ("\n已生成:"+"\n"+str(y))
print ("\n是否采用?")
cho2 = input (">")
if cho2 in list4:
print ("这是哪里的密码")
wfu = input (">")
file = open ("密码.txt", 'a+', encoding = 'utf-8')
file.write (wfu+":\n"+str(y)+"\n\n")
file.close ()
print ("任务已完成")
break
if cho in list2:
file = open ("密码.txt", 'r', encoding = 'utf-8')
x_1 = file.read()
#数据处理
x_2 = x_1.split("\n")
print ("寻找啥")
a_1 = input (">")
#数据处理
a = search (x_2,a_1+":")
while True:
if val != True:
print ("重试一下,现在还不支持关键词搜索哦")
if val ==True:
print ("\n密码为:")
print (x_2[xh+1])
break
file.close ()
#使建成的exe不自动退出
os.system ("pause")
总结
其实就是将可以作为密码的字母或字符列出来,让python随机抽取,并将其与相关数据处理后写入文件中,当然,有的时候特殊字符不止这一些,这些特殊字符在大部分地方都是可以用的,大家可以根据自己需要加加减减;读取是通过列表实现的,通过穷举法一个个找,大家也可以用其它的查找方式提高查找效率。我暂时还没想到怎样实现关键词搜索,如果大家有好的方案可以告诉我哦 ^ _ ^