背景
随着现在的应用越来越多,人们注册账号密码的数量也越来越多,很多时候,我都不记得这个平台有没有创建账号密码,这是第一点。还有一点就是,因为很多人不愿意记很多个密码,或者也记不住很多个密码,导致很多平台的密码是一样的,这样其实对自己资料的安全性很低,因为这样出事的例子也有很多。还有就是,我觉得这个小助手应该是一个成熟的小助手,可以自己生成复杂度良好的密码!然后保存在数据库。因此,奔着着自己使用的同时也分享给大家!
一、思路
正常的增删改查功能,只不过我们是在命令台输入。唯一有差别的就是增,我需要随机生成复杂度较高的密码,保存起来。如果输入的值有错误,则提示错误。
增:输入所在平台->输入账号->生成密码->保存起来。如果在该平台已经存在此账号,保存失败并提示。
删:输入平台->输入账号->确认删除->删除成功。
改:输入平台->输入账号->确认修改的密码->选择修改项->修改成功。如果修改后的平台账号冲突,则提示修改失败并提示。
查:查找所有账号密码、查找指定平台账号的密码、按平台查找账号密码、按账号查找平台跟密码。
二、实现
1.增
def createpa ():
a = input('请输入生成密码的平台:')
b = input('请输入平台登陆账号:')
c = input('请输入生成密码的位数:')
d = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789~!@#$%^&*()_+-=*/[]{}'
e = random.sample(d,int(c))
f = ''.join(e)
cur.execute('select pingtai,zhanghao from pamanag;')
ptzhanghao = cur.fetchall()
for i in ptzhanghao :
if a == i[0] and b == i[1]:
print('该平台下账号已存在,请确认。')
return
print('生成一条记录:')
print(f'平台:{a},账号:{b},密码:{f}')
while True:
g = input('是否保存到数据库?Y/N')
if g == 'Y' or g =='y':
cur.execute('insert into pamanag(pingtai,zhanghao,mima) value (%s,%s,%s)',(a,b,f))
con.commit()
print('保存成功!')
return
elif g == 'N' or g =='n' :
return
else :
print('请输入正确值!')
#
# print('新增一条记录:')
# print(f'平台:{a},账号:{b},密码:{f}')
2.删
def delpasswd():
a = input('请输入删除的平台:')
b = input(f'请输入删除{a}平台下的账号:')
cur.execute('select pingtai,zhanghao from pamanag;')
ptzhanghao = cur.fetchall()
for i in ptzhanghao:
if a == i[0] and b == i[1]:
while True:
cur.execute('select * from pamanag where pingtai=%s and zhanghao=%s', (a, b))
data = cur.fetchall()
c = input(f'确认删除{data[0][1]}平台的账号:{data[0][2]}密码:{data[0][3]}?Y/N')
if c == 'Y' or c == 'y':
cur.execute('delete from pamanag where pingtai=%s and zhanghao=%s' , (a,b))
con.commit()
print('删除成功!')
return
elif c == 'N' or c == 'n':
return
else:
print('请输入正确值!')
return
print('没有这条信息,请确认。')
3.改
def updatedpass():
a = input('请输入要修改的平台:')
b = input(f'请输入在{a}平台中要修改的账号:')
cur.execute('select pingtai,zhanghao from pamanag;')
ptzhanghao = cur.fetchall()
for i in ptzhanghao:
if a == i[0] and b == i[1]:
while True:
cur.execute('select * from pamanag where pingtai=%s and zhanghao=%s', (a, b))
data = cur.fetchall()
c = input(f'是否修改{data[0][1]}平台的账号:{data[0][2]}密码:{data[0][3]}的内容?Y/N')
if c == 'Y' or c == 'y':
d = input('请选择修改选项:1.平台;2.账号;3.密码;')
if d == '1' :
e = input(f'{data[0][1]}平台修改为:')
for j in ptzhanghao:
if e == j[0] and b == j[1]:
print('修改失败,该平台已存在此账号')
return
cur.execute('update pamanag set pingtai = %s where pingtai=%s and zhanghao=%s' , (e,a,b))
con.commit()
print('修改成功!')
return
elif d == '2' :
e = input(f'账号{data[0][2]}修改为:')
for j in ptzhanghao:
if a == j[0] and e == j[1]:
print('修改失败,该账号已存在此平台')
return
cur.execute('update pamanag set zhanghao = %s where pingtai=%s and zhanghao=%s' , (e,a,b))
con.commit()
print('修改成功!')
return
elif d == '3' :
e = input(f'密码{data[0][3]}修改为:')
cur.execute('update pamanag set mima = %s where pingtai=%s and zhanghao=%s' , (e,a,b))
con.commit()
print('修改成功!')
return
else:
print('请输入正确值!')
elif c == 'N' or c == 'n':
return
else:
print('请输入正确值!')
return
print('没有这条信息,请确认。')
4.查
def selectall():
cur.execute('select pingtai,zhanghao,mima from pamanag;')
data = cur.fetchall()
for i in data:
print(f'平台:{i[0]},账号:{i[1]},密码:{i[2]}')
def selectatpingtaizhanghao():
a = input('请输入要查找的平台:')
b = input(f'请输入{a}平台下要查找的账号:')
cur.execute('select pingtai,zhanghao from pamanag;')
ptzhanghao = cur.fetchall()
for i in ptzhanghao:
if a == i[0] and b == i[1]:
cur.execute('select * from pamanag where pingtai=%s and zhanghao=%s', (a, b))
data = cur.fetchall()
print(f'平台:{data[0][1]}账号:{data[0][2]}密码:{data[0][3]}')
def selectatpingtai():
a = input('请输入要查找平台:')
cur.execute('select pingtai,zhanghao,mima from pamanag where pingtai=%s;',(a))
data = cur.fetchall()
for i in data :
print(f'平台:{i[0]},账号:{i[1]},密码:{i[2]}')
def selectatzhanghao():
a = input('请输入要查找账号:')
cur.execute('select pingtai,zhanghao,mima from pamanag where zhanghao=%s;',(a))
data = cur.fetchall()
for i in data :
print(f'平台:{i[0]},账号:{i[1]},密码:{i[2]}')
5.完整代码
import random
import pymysql
con = pymysql.connect(host='127.0.0.1',port=3306,user='root',passwd='123',db='passwordmanag',charset='utf8')
cur = con.cursor()
def createpa ():
a = input('请输入生成密码的平台:')
b = input('请输入平台登陆账号:')
c = input('请输入生成密码的位数:')
d = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789~!@#$%^&*()_+-=*/[]{}'
e = random.sample(d,int(c))
f = ''.join(e)
cur.execute('select pingtai,zhanghao from pamanag;')
ptzhanghao = cur.fetchall()
for i in ptzhanghao :
if a == i[0] and b == i[1]:
print('该平台下账号已存在,请确认。')
return
print('生成一条记录:')
print(f'平台:{a},账号:{b},密码:{f}')
while True:
g = input('是否保存到数据库?Y/N')
if g == 'Y' or g =='y':
cur.execute('insert into pamanag(pingtai,zhanghao,mima) value (%s,%s,%s)',(a,b,f))
con.commit()
print('保存成功!')
return
elif g == 'N' or g =='n' :
return
else :
print('请输入正确值!')
#
# print('新增一条记录:')
# print(f'平台:{a},账号:{b},密码:{f}')
def delpasswd():
a = input('请输入删除的平台:')
b = input(f'请输入删除{a}平台下的账号:')
cur.execute('select pingtai,zhanghao from pamanag;')
ptzhanghao = cur.fetchall()
for i in ptzhanghao:
if a == i[0] and b == i[1]:
while True:
cur.execute('select * from pamanag where pingtai=%s and zhanghao=%s', (a, b))
data = cur.fetchall()
c = input(f'确认删除{data[0][1]}平台的账号:{data[0][2]}密码:{data[0][3]}?Y/N')
if c == 'Y' or c == 'y':
cur.execute('delete from pamanag where pingtai=%s and zhanghao=%s' , (a,b))
con.commit()
print('删除成功!')
return
elif c == 'N' or c == 'n':
return
else:
print('请输入正确值!')
return
print('没有这条信息,请确认。')
def updatedpass():
a = input('请输入要修改的平台:')
b = input(f'请输入在{a}平台中要修改的账号:')
cur.execute('select pingtai,zhanghao from pamanag;')
ptzhanghao = cur.fetchall()
for i in ptzhanghao:
if a == i[0] and b == i[1]:
while True:
cur.execute('select * from pamanag where pingtai=%s and zhanghao=%s', (a, b))
data = cur.fetchall()
c = input(f'是否修改{data[0][1]}平台的账号:{data[0][2]}密码:{data[0][3]}的内容?Y/N')
if c == 'Y' or c == 'y':
d = input('请选择修改选项:1.平台;2.账号;3.密码;')
if d == '1' :
e = input(f'{data[0][1]}平台修改为:')
for j in ptzhanghao:
if e == j[0] and b == j[1]:
print('修改失败,该平台已存在此账号')
return
cur.execute('update pamanag set pingtai = %s where pingtai=%s and zhanghao=%s' , (e,a,b))
con.commit()
print('修改成功!')
return
elif d == '2' :
e = input(f'账号{data[0][2]}修改为:')
for j in ptzhanghao:
if a == j[0] and e == j[1]:
print('修改失败,该账号已存在此平台')
return
cur.execute('update pamanag set zhanghao = %s where pingtai=%s and zhanghao=%s' , (e,a,b))
con.commit()
print('修改成功!')
return
elif d == '3' :
e = input(f'密码{data[0][3]}修改为:')
cur.execute('update pamanag set mima = %s where pingtai=%s and zhanghao=%s' , (e,a,b))
con.commit()
print('修改成功!')
return
else:
print('请输入正确值!')
elif c == 'N' or c == 'n':
return
else:
print('请输入正确值!')
return
print('没有这条信息,请确认。')
def selectall():
cur.execute('select pingtai,zhanghao,mima from pamanag;')
data = cur.fetchall()
for i in data:
print(f'平台:{i[0]},账号:{i[1]},密码:{i[2]}')
def selectatpingtaizhanghao():
a = input('请输入要查找的平台:')
b = input(f'请输入{a}平台下要查找的账号:')
cur.execute('select pingtai,zhanghao from pamanag;')
ptzhanghao = cur.fetchall()
for i in ptzhanghao:
if a == i[0] and b == i[1]:
cur.execute('select * from pamanag where pingtai=%s and zhanghao=%s', (a, b))
data = cur.fetchall()
print(f'平台:{data[0][1]}账号:{data[0][2]}密码:{data[0][3]}')
def selectatpingtai():
a = input('请输入要查找平台:')
cur.execute('select pingtai,zhanghao,mima from pamanag where pingtai=%s;',(a))
data = cur.fetchall()
for i in data :
print(f'平台:{i[0]},账号:{i[1]},密码:{i[2]}')
def selectatzhanghao():
a = input('请输入要查找账号:')
cur.execute('select pingtai,zhanghao,mima from pamanag where zhanghao=%s;',(a))
data = cur.fetchall()
for i in data :
print(f'平台:{i[0]},账号:{i[1]},密码:{i[2]}')
def main():
print('-' * 65 + '账号密码管理系统' + '-' * 65 )
while True:
a = input('请选择功能:1.创建账号密码;2.删除账号密码;3.修改账号密码;'
'4.查找所有账号密码;5.按账号平台查找密码;6.按平台查找账号密码;7.按账号寻找账号密码;0.退出')
if int(a) == 1:
createpa()
elif int(a) == 2:
delpasswd()
elif int(a) == 3 :
updatedpass()
elif int(a) == 4 :
selectall()
elif int(a) == 5 :
selectatpingtaizhanghao()
elif int(a) == 6 :
selectatpingtai()
elif int(a) == 7 :
selectatzhanghao()
elif int(a) == 0 :
exit()
else:
print('请输入正确序号。')
print('-' * 65 + '账号密码管理系统' + '-' * 65 )
if __name__ == '__main__':
main()
效果:
C:\Users\blanklee\PycharmProjects\Paswdmanagement\venv\Scripts\python.exe C:/Users/blanklee/PycharmProjects/Paswdmanagement/paswdmanagement.py
-----------------------------------------------------------------账号密码管理系统-----------------------------------------------------------------
请选择功能:1.创建账号密码;2.删除账号密码;3.修改账号密码;4.查找所有账号密码;5.按账号平台查找密码;6.按平台查找账号密码;7.按账号寻找账号密码;0.退出1
请输入生成密码的平台:QQ
请输入平台登陆账号:123456789
请输入生成密码的位数:8
生成一条记录:
平台:QQ,账号:123456789,密码:4K-Bn&VZ
是否保存到数据库?Y/NY
保存成功!
-----------------------------------------------------------------账号密码管理系统-----------------------------------------------------------------
请选择功能:1.创建账号密码;2.删除账号密码;3.修改账号密码;4.查找所有账号密码;5.按账号平台查找密码;6.按平台查找账号密码;7.按账号寻找账号密码;0.退出1
请输入生成密码的平台:QQ
请输入平台登陆账号:123456789
请输入生成密码的位数:7
该平台下账号已存在,请确认。
-----------------------------------------------------------------账号密码管理系统-----------------------------------------------------------------
请选择功能:1.创建账号密码;2.删除账号密码;3.修改账号密码;4.查找所有账号密码;5.按账号平台查找密码;6.按平台查找账号密码;7.按账号寻找账号密码;0.退出2
请输入删除的平台:YY
请输入删除YY平台下的账号:123
确认删除YY平台的账号:123密码:=9*/LE^?Y/NY
删除成功!
-----------------------------------------------------------------账号密码管理系统-----------------------------------------------------------------
请选择功能:1.创建账号密码;2.删除账号密码;3.修改账号密码;4.查找所有账号密码;5.按账号平台查找密码;6.按平台查找账号密码;7.按账号寻找账号密码;0.退出2
请输入删除的平台:123456789
请输入删除123456789平台下的账号:123456789
没有这条信息,请确认。
-----------------------------------------------------------------账号密码管理系统-----------------------------------------------------------------
请选择功能:1.创建账号密码;2.删除账号密码;3.修改账号密码;4.查找所有账号密码;5.按账号平台查找密码;6.按平台查找账号密码;7.按账号寻找账号密码;0.退出3
请输入要修改的平台:QQ
请输入在QQ平台中要修改的账号:123456789
是否修改QQ平台的账号:123456789密码:4K-Bn&VZ的内容?Y/NY
请选择修改选项:1.平台;2.账号;3.密码;3
密码4K-Bn&VZ修改为:4K-Bnnu857@
修改成功!
-----------------------------------------------------------------账号密码管理系统-----------------------------------------------------------------
请选择功能:1.创建账号密码;2.删除账号密码;3.修改账号密码;4.查找所有账号密码;5.按账号平台查找密码;6.按平台查找账号密码;7.按账号寻找账号密码;0.退出3
请输入要修改的平台:QQ
请输入在QQ平台中要修改的账号:587
是否修改QQ平台的账号:587密码:dA(v2Z&h的内容?Y/NY
请选择修改选项:1.平台;2.账号;3.密码;2
账号587修改为:123456789
修改失败,该账号已存在此平台
-----------------------------------------------------------------账号密码管理系统-----------------------------------------------------------------
请选择功能:1.创建账号密码;2.删除账号密码;3.修改账号密码;4.查找所有账号密码;5.按账号平台查找密码;6.按平台查找账号密码;7.按账号寻找账号密码;0.退出3
请输入要修改的平台:888
请输入在888平台中要修改的账号:888
是否修改888平台的账号:888密码:$ERkKm*的内容?Y/NY
请选择修改选项:1.平台;2.账号;3.密码;1
888平台修改为:777
修改失败,该平台已存在此账号
-----------------------------------------------------------------账号密码管理系统-----------------------------------------------------------------
请选择功能:1.创建账号密码;2.删除账号密码;3.修改账号密码;4.查找所有账号密码;5.按账号平台查找密码;6.按平台查找账号密码;7.按账号寻找账号密码;0.退出4
平台:QQ,账号:4872,密码:e6HCZza
平台:淘宝,账号:4872,密码:heI7
平台:888,账号:888,密码:$ERkKm*
平台:777,账号:888,密码:u&dPSb1M
平台:微信,账号:5858,密码:[-%eix_
平台:QQ,账号:587,密码:dA(v2Z&h
平台:QQ,账号:123456789,密码:4K-Bnnu857@
-----------------------------------------------------------------账号密码管理系统-----------------------------------------------------------------
请选择功能:1.创建账号密码;2.删除账号密码;3.修改账号密码;4.查找所有账号密码;5.按账号平台查找密码;6.按平台查找账号密码;7.按账号寻找账号密码;0.退出5
请输入要查找的平台:QQ
请输入QQ平台下要查找的账号:123456789
平台:QQ账号:123456789密码:4K-Bnnu857@
-----------------------------------------------------------------账号密码管理系统-----------------------------------------------------------------
请选择功能:1.创建账号密码;2.删除账号密码;3.修改账号密码;4.查找所有账号密码;5.按账号平台查找密码;6.按平台查找账号密码;7.按账号寻找账号密码;0.退出6
请输入要查找平台:QQ
平台:QQ,账号:4872,密码:e6HCZza
平台:QQ,账号:587,密码:dA(v2Z&h
平台:QQ,账号:123456789,密码:4K-Bnnu857@
-----------------------------------------------------------------账号密码管理系统-----------------------------------------------------------------
请选择功能:1.创建账号密码;2.删除账号密码;3.修改账号密码;4.查找所有账号密码;5.按账号平台查找密码;6.按平台查找账号密码;7.按账号寻找账号密码;0.退出7
请输入要查找账号:888
平台:888,账号:888,密码:$ERkKm*
平台:777,账号:888,密码:u&dPSb1M
-----------------------------------------------------------------账号密码管理系统-----------------------------------------------------------------
请选择功能:1.创建账号密码;2.删除账号密码;3.修改账号密码;4.查找所有账号密码;5.按账号平台查找密码;6.按平台查找账号密码;7.按账号寻找账号密码;0.退出0
Process finished with exit code 0
结束
好啦,可以愉快的开始使用账号密码小助手了!!忘记密码就来这找喽!