文件加密导入导出思路,对称加密和非对称加密混合使用

前言

工作中遇到一个功能,需要导出文件包,并且导入。

具体的逻辑没什么好说,但是为了安全需要加密文件包,这时候就涉及一个加密的问题。

常见的加密有MD5,对称加密,非对称加密。

MD5主要是用来检验文件是否被篡改

对称加密速度快,但是因为加解密都是同样的秘钥,安全性来说差一点

非对称加密速度慢,但是因为公私钥分开,

可以用公钥加密,私钥解密来确保安全性,或者是私钥加密,公钥解密来确认身份。这次的功能用前面的方法。

 

解决方案

最开始是直接用非对称加密RSA,直接去加密文件,直接加密10MB的文件会出现卡死,显然非常不现实。

这时候解决方案其实很简单。先用对称加密AES去加密文件,然后保存加密时用的Key和Value。

将这两个导出为一个文件,因为只保存关键性秘钥信息,所以这个时候用RSA加密速度会很快。

我是用一个类保存为JSON,然后再保存为文件。

这里面还可以加个MD5的文件校验,以防止文件被篡改,不过需求不需要这么高的防伪,这里只是提一下

 

每个加密方法和具体逻辑就不列了,没有什么特别难的,思路有了,就是对工具类。

 

posted on 2021-01-25 16:48  Mrlw  阅读(545)  评论(0编辑  收藏  举报

导航