<分区>
我正在做一个小项目,需要你的帮助。以下是详细信息:
- 我的项目是在 VC++ 2008 中
- 我需要将一些关键资源文件包与我的项目 exe 一起以加密形式存储
- 在运行 exe 时,我想即时解密和使用这些文件(不将解密文件存储在临时位置)
- 有问题的文件是二进制文件
- 项目小而简单
- 加密可以是简单的或适度安全的
我正在为一个简单的项目寻找一个加密库/sdk/toolkit,该库应该有以下要求
- 它应该小巧且易于使用,我不需要很多功能,而且我的开发时间很短
- 应该可以免费使用
- 它应该能够解密流,或者直接在内存中解密文件,而无需将它们存储在任何临时位置
- 它应该有很好的教程/示例/社区支持,我的开发时间很短
- 它应该支持不止一种加密策略,这样我就可以在需要时切换到更好的算法,而无需更改库
我对加密库真的很陌生,请提出您的建议,我会自己做背景研究。
编辑
此外,您能否建议一种将我的 key 隐藏在 EXE 中的好方法?这是一个点击即运行的应用程序,无需任何注册或安装。
解密 key 是否会在您的程序中进行硬编码,或者由例如提供。许可证文件?
如果是硬编码,不要费心寻找任何类型的奇特加密,您所希望的只是一层(非常薄!)混淆 - 即使是简单的 XOR 加扰也不会比 AES 差。
就是说,查看 TomCrypt或 Crypto++ .
编辑
您也可以选择非常简单的内容,例如 TEA .或者您可以坚持使用简单的 XOR 加密并压缩您的可执行文件;单字节 XOR 加密的一个很好的特性是加密数据仍然是可压缩的:)(买者警告:exe 压缩有时会在防病毒应用程序中触发误报)。
要记住的是,“如果它运行,它可能会被破坏”,所以专注于转移随意窥探的目光,而忘记防范“真正感兴趣的人”——这需要很多 努力和知识来做任何远程成功。
编辑2
为了“隐藏”解密 key ,您可以简单地存储二进制 key (解密算法本身使用的)而不是文本表示 - 或者您可以使用一串乱码。没关系,临时用户无论如何都无法使用该 key ,而且您不能对有决心的人隐藏它:)