随着使用移动APP等日益增多,难免需要注册各种账号以便使用其服务,而脑子也难以记住越来越多的账号和密码。想过拿个小本本记下来,但久而久之更改密码什么的又太麻烦;某日拍脑袋一想,可以凭借浅薄的密码学知识写个程序啊!!!

怎么说也是信息安全专业的(虽然很菜)。不知道经过多少日夜,本菜鸡用蹩脚的C#编程能力完成了基于SM2(椭圆曲线加密算法)的文件加解密工具,再后来从运营商跳槽到一个测评机构,写了一个基于SM4(也是国密算法)的文件加解密工具,且算是站在前人的肩膀上(基于公开的源码)学以致用吧。

1.使用SM2文件加解密工具加密

比如加密我的账号及信息:

SSH登录kali

然后选择生成或导入公钥进行加密,加密后的文件如下:

SSH登录kali

2.使用SM2文件加解密工具解密

解密也很简单,导入私钥解密相应文件即可(私钥的安全性很重要)

截图就不放了,涉及到个人敏感信息,嘿嘿

3.使用SM4文件加解密工具保护私钥

SM2是非对称加密算法,私钥的安全性至关重要,因此可使用SM4对称加密来保护私钥:

SSH登录kali

选择CBC模式,输入密钥(通常说的口令或密码)完成加密。

当需要用私钥解密时,就先用此工具解密得到私钥明文,接着再用私钥解密对应公钥加密的数据。

4.其他保护方案

如果不自己写程序,那能不能用类似的工具保护敏感信息呢?答案是当然可以啦,比如:

OpenPGP的gpg4win,安装之后名字叫“Kleopatra”(挠头??)

SSH登录kali

链接在此:https://www.gpg4win.org/

至于如何保护私钥,如果使用gpg4win不导出密钥文件的话,不用考虑;导出的话,可使用压缩软件压缩加密码保护。

5.为什么大费周章

也许互联网上不乏各种记密码的APP或软件,但真的安全么?若存在后门或者私自上传数据,那就更莫有隐私可言了(作为韭菜,估计也没啥隐私了🤣)。

对于此类APP信不过很正常,而需要说明的是基于数学难题的密码算法在计算上是安全的,因此我需要做的是将加密后的文件多处备份,以防丢失导致无法恢复。

最后,这两个工具相关代码片段在github都有,搜索SM2,SM4关键词即可。