?本文在CSDN"彭_Yu的博客"同步发表
目录
注:程序实例可到文末下载
1.要点
1.tkinter界面设计
2.SQLite数据库操作
3.字符串异或运算加密和解密
2.运行原理
1.用户需要记住一个统一的加解密密钥,对于各平台的密码,使用密钥字符串异或运算加密后存储到数据库,查询时使用同一个密钥进行密钥字符串异或解密。
2.需要注意的是,由于代码采用的是异或算法,所以密码字符串和密钥字符串不应有对应位置上相同的字符。
3.由于代码采用的是异或算法所以并不安全,他人猜到的加解密密钥与正确密钥越相似,解密出的密码也就与正确密码越相似。你可以改写加密和解密算法,实现更高级别的密码保护。
3.异或算法简介
XOR 是 exclusive OR 的缩写。英语的 exclusive 意思是"专有的,独有的",可以理解为 XOR 是更单纯的 OR 运算。
我们知道,OR 运算的运算子有两种情况,计算结果为
true
。上面两种情况,有时候需要明确区分,所以引入了 XOR。
XOR 排除了第二种情况,只有第一种情况(一个运算子为
true
,另一个为false
)才会返回 true,所以可以看成是更单纯的 OR 运算。也就是说, XOR 主要用来判断两个值是否不同。XOR 一般使用插入符号(caret)
^
表示。如果约定0
为 false,1
为 true,那么 XOR 的运算真值表如下。
4.运行效果
5.实现过程
5.1文件结构
5.2建立数据库
在这里我们可以使用在线sqlite查看器:
输入如下信息:
单击执行 sql>导出Sqlite数据库文件 并将文件重命名为 “MyPWD.sqlite3” 放入MyPWD.exe(主程序)所在目录。