序言:目前网上的文件加密软件,大多都是付费、注册类,于是打算自己用go语言手写一个,自用的文件加密小程序。
思路:图片、视频等文件都是二进制存储的数据,我们用文本编辑器打开删除部分信息后,就导致文件损坏无法打开。因此,我们可以用go语言二进制读取需要加密的文件,将文件前n个字节存储到SQLite中,将剩余的字节再存到文件中,并删除源文件,因文件部分数据缺失,就会导致无法打开。
为了进一步保证安全:
1、前n字节存储到SQLite数据库的时候进行下简单加密操作,比如全部按位取反后转为字符串保存。
2、剩余的字节也可以取反后转为字符串保存到文件中。
3、原文件名加密存储到数据库,取原文件名的哈希值作为加密后的文件名,同时文件名哈希值也保存到数据库中。别人只看到一串哈希字符的文件名,无法得到原文件名、原文件类型。
4、为了解密安全,我们可以在程序中设置一个固定的解密密码,也可以在数据库中以加密形式保存一个解密密码。别人在不知道解密密码的情况下,无法解密文件。