Python写一个账号密码小助手(包含增删改查功能)

背景

随着现在的应用越来越多,人们注册账号密码的数量也越来越多,很多时候,我都不记得这个平台有没有创建账号密码,这是第一点。还有一点就是,因为很多人不愿意记很多个密码,或者也记不住很多个密码,导致很多平台的密码是一样的,这样其实对自己资料的安全性很低,因为这样出事的例子也有很多。还有就是,我觉得这个小助手应该是一个成熟的小助手,可以自己生成复杂度良好的密码!然后保存在数据库。因此,奔着着自己使用的同时也分享给大家!

一、思路

正常的增删改查功能,只不过我们是在命令台输入。唯一有差别的就是增,我需要随机生成复杂度较高的密码,保存起来。如果输入的值有错误,则提示错误。
增:输入所在平台->输入账号->生成密码->保存起来。如果在该平台已经存在此账号,保存失败并提示。
删:输入平台->输入账号->确认删除->删除成功。
改:输入平台->输入账号->确认修改的密码->选择修改项->修改成功。如果修改后的平台账号冲突,则提示修改失败并提示。
查:查找所有账号密码、查找指定平台账号的密码、按平台查找账号密码、按账号查找平台跟密码。

二、实现

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

结束

好啦,可以愉快的开始使用账号密码小助手了!!忘记密码就来这找喽!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值