想不到好的密码?密码总是忘记?python实现自动生成密码与密码查询

python random实现自动生成密码与密码查询

为什么要做这个

一个字,懒
其实是有一段血泪史的,从开学以来,好多地方需要用到用户登录,有许多比较重要,统一用同一个密码不是很安全,用不同密码记录又比较麻烦,今天刚好有空,就及时止损吧。

代码

削微写一点注释吧

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随机抽取,并将其与相关数据处理后写入文件中,当然,有的时候特殊字符不止这一些,这些特殊字符在大部分地方都是可以用的,大家可以根据自己需要加加减减;读取是通过列表实现的,通过穷举法一个个找,大家也可以用其它的查找方式提高查找效率。我暂时还没想到怎样实现关键词搜索,如果大家有好的方案可以告诉我哦 ^ _ ^

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值