一、编写动机
做这么一个程序,最初来源于我的另一个程序,即基于MySQL和Tkinter可视化的密码存储程序,那个基于MySQL的程序利用MySQL的加密体系,提供登录检查和密码存储。但是这个就很有局限性。虽然基于MySQL,性能上和安全性上自然是没有什么问题的,然而毕竟这个程序需要MySQL,总不能为了写一个小小的程序再专门下载一个MySQL吧(尽管MySQL普及度比较高,但也不应该是某个单机程序运行的必要条件)。为此,我决定使用RSA加密和不需要其他专用程序支持的文档编写一个可以单机运行的密码存储程序。
为了实现这个程序,达到超越原程序的目标,我迭代了原有的登录验证系统,使其实用性进一步提高,进一步接近常用程序的登录验证;同时,我进一步提升了健壮性,同时采取多重手段保护数据以免被盗取或者外部冒名写入。
二、系统简介
该程序将包含两个主界面:登录界面,数据操纵界面;
四个辅助界面:注册界面(为保证安全,仅支持一次性注册),密码修改界面,密保问题修改界面,忘记密码登录界面;
支持的功能:密码信息(平台,账号,密码三个属性)插入,基于平台名称的密码信息模糊查询,密码信息定位修改(仅能修改密码,其他两项不能),密码信息定位删除,用户密码登录,忘记密码登录,登录密码修改,密保问题修改,密钥(公钥私钥)加密存储,密码信息、登录检查信息加密存储;
程序整体思路:利用RSA生成公钥密钥,用.pem文件进行存储,获取公钥进行加密,对加密信息(3*n的二维列表)进行处理,用pickle.dump存入二进制.pickle文件中,需要对数据进行操作时即利用pickle.load函数读出数据,完成操作后写回(直接全量写入,覆盖原数据)。
三、准备工作
你需要一个Python,一个方便你写程序的PyCharm(其他的也可以),一些模块(re,rsa,pickle,tkinter)然后就够了。
# 准备工作:安装这些模块,以备调用
pip install re # 正则表达式用的
pip install rsa # 加密解密用的
pip install pickle # 存储信息用的
pip install tkinter # 可视化用的