首页 > 修改密码后,再次启动软件时,如何才能使用修改后的密码登录,而不是用一开始的默认密码登录

修改密码后,再次启动软件时,如何才能使用修改后的密码登录,而不是用一开始的默认密码登录

我写了一个小代码,启动时需要输入密码,进入后可以修改密码。
但是修改密码后,下一次启动时还需要输入默认的密码。
那么再次启动软件时,如何才能使用修改后的密码登录,而不是用一开始的默认密码登录?

是用C写的


这是数据信息的持久化问题,由于我们现在的计算机都是冯诺依曼的体系结构,也就是数据加载到内存进行计算,而内存也称为闪存,特点是计算机重启后数据就消失了,对于你的程序来说,当程序退出后,属于进程本身的数据就被OS释放了。所以你如果想对于本次的数据修改进行生效的话,只能保存在硬盘上,对于你的程序来说,你设置初始密码的源要从硬盘上读取,至于具体的存取,你可以存在:
1) 注册表
2) 本地硬盘文件
当然,其实1)注册表也是保存在本地硬盘里


找个地方存密码,比如注册表或者appdata或者直接放在程序更目录也行。记着别用明文存,用md5+salt处理几次然后存。
程序启动的时候检测有没有之前留下的密码文件,没有就默认密码,有的话把密码文件里面的信息提出来比对。

这方法也不完善,比如可以通过替换密码文件的方式来强行修改密码。


补充:
以一个加密的日记本或相册软件为例。加密是为了防止第三方获取数据。那么你要做的事情如下:

a:每次日记或相册内容变化后
a.1:将所有保密内容合并在一起加密,密钥为用户密码或根据用户密码生成。
a.2:将对所有保密内容求md5后与用户密码合并后再md5,存入密码文件中。
b:
b.1:登陆时根据用户输入密码进行a.2操作并将结果与密码文件对比,相同则登陆成功。
b.2:利用用户密码对保密内容进行解密。

这个方法基本上杜绝了替换密码文件的隐患和绕过登陆直接提取内容的隐患。
前者是由于保密文件生成与保密内容有关,而保密内容已被加密,在没有原始信息的情况下无法生成其他密码文件来替换。
后者则是因为内容由用户密码加密,没密码别想提取。
这种方式想要破解基本就靠暴力破解了。(不考虑当程序运行时,第三方软件读内存等情况,只考虑软件未启动时的破解)

【热门文章】
【热门文章】