shilyx
2021-03-02 09:17:08 +08:00
楼主考虑的对,很多留言者没考虑到需求点在哪
有人说 tls,那是对过程加密。过程上的监听者就是个假想敌,如果有人想从链路上截获你的数据的话,你基本拒绝不了。技术上拒绝,生理上也拒绝不了,多说无益。几乎没有人在链路上截获你。
但不是说不用 tls,有条件还是要上。
解压密码,最简单的是调用 7z.exe 解压,密码很容易在使用中被抓到。就算你继承了动态库、静态库,关键调用还是很容易被分析出来。如果是源码级魔改并融合 7z,那工作量是直线上升。
就算解决了加密问题,100M 的文件常规思路还是解压到临时目录来使用,很容易被发现的。全加载到内存,按数据结构组织后轻松上 500M 。
楼主的需求可以总结为:
1 、文件到了终端,依然作为一个格式不明的加密文件存在
2 、加密文件支持随机读取,不一定要读取就全部解密
推荐基于 aes 搞一个自己的加密算法。
aes 仅仅是对 16 字节的输入给出 16 字节的输出而已,距离直接应用还有一段距离。需要选择一种模式,简单的 ecb 或好一些的 cbc,密码用二进制,加密文件格式分好段,做好 padding 和校验。这一切自己完成的话,光凭一个文件,几乎是破解不了。