请推荐一个适用于VC++ 2008的好的加密库。

6
我正在开发一个小项目,需要你的帮助。以下是详细信息:
- 我的项目使用VC++ 2008。 - 我需要以加密形式存储一些与我的项目exe捆绑的关键资源文件。 - 运行exe时,我想要实时解密并使用这些文件(而不将解密后的文件存储在临时位置)。 - 所涉及的文件是二进制文件。 - 该项目很小且简单。 - 加密可以是简单的或适度安全的。
我正在寻找一个加密库/sdk/工具包,以用于一个简单的项目,该库应满足以下要求:
- 它应该小巧且易于使用,我不需要很多功能,而且我时间紧迫。 - 它应该是免费的。 - 它应该能够解密流,或者直接在内存中解密文件而不将其存储在任何临时位置。 - 它应该有良好的教程/示例/社区支持,我时间紧迫。 - 它应该支持多种加密策略,这样我就可以在不更改库的情况下切换到更好的算法。
我对加密库非常陌生,请给出您的建议,我会自己做背景研究。
另外,你能否建议一种好的方法来隐藏我的密钥在EXE中?这是一个点击运行的应用程序,没有任何注册或安装。

请看这里:https://dev59.com/uXVC5IYBdhLWcg3wykej - Anders
1

项目小而简单

加密可以简单或适度安全。看起来你并不真的需要这样的库...

- Cedric H.
解密二进制文件和ASCII文件并没有太大的区别,因为如果不支持二进制,你可以很容易地进行base64编码/解码。 - Brian
6个回答

7
你的程序中的解密密钥是硬编码还是来自许可文件?
如果是硬编码,不要费力寻找任何花哨的加密方式,你只能希望有一个(非常薄的!)混淆层——即使是简单的异或混淆也不会比AES差。
话虽如此,你可以查看TomCryptCrypto++
编辑
你也可以选择一些非常简单的东西,比如TEA。或者你可以坚持使用简单的异或加密和压缩可执行文件;单字节异或加密的一个好处是加密数据仍然可以被压缩 :) (请注意:exe压缩有时会触发反病毒应用程序的误报)。
需要记住的是,“如果它可以运行,就可以被破解”,所以专注于转移好奇的目光,忘记安全防范“真正感兴趣的人”——这需要大量的努力和知识才能取得任何成功。
编辑2

如果想要“隐藏”解密密钥,可以简单地存储二进制密钥(即解密算法本身使用的密钥),而不是文本表示,或者可以使用一串无意义的字符串。这并不重要,普通用户无法使用密钥,你也无法将其隐藏在决心强烈的人手中 :)


加密密钥将嵌入EXE文件,有更好的分发密钥的方法吗? - coreSOLO
这在很大程度上取决于你正在做什么;如果运行应用程序不需要注册/许可证/任何数据,而你只是想要防止别人窥视,那么我个人会选择一些简单的东西。 - snemarch
你说的没错,现在我只需要让我的数据远离窥探的眼睛,但是将来我需要将其更新到更好的系统。此外,像“AES加密”这样的东西看起来很酷(如果实现得当) :) - coreSOLO
如果您在某个时候转向“基于许可证解锁的内容”模型,那么您有很多选择……但请记住“如果它运行,它就会出错”的口号 :) - snemarch
取决于您选择的密钥大小、PRNG的种子以及对手可用的计算能力,RSA方案的安全性是不确定的。由于实现问题,各种形式的RSA方案确实已经被攻破了 :) - snemarch
显示剩余2条评论

2
我不知道它是否真正满足你的所有要求,但是看一下Botan

2
我曾使用过Crypto++,虽然我认识到它背后的天才...但我讨厌需要一个天才才能使用它(或者接近这个水平)。有一些好的例子,但稍微偏离这些例子就会变得非常令人沮丧。
我建议使用Google Keyczar:它被设计为易于使用的加密工具:
- 安全默认设置,因此不必担心它们 - 支持多种算法:非对称和对称加密,哈希等 - 处理密钥,具有旋转机制等...虽然在您的情况下可能没有太大用处
请查看网站:Keyczar 小提示:由于API,流解码可能会出现一些问题,我没有足够的经验来回答这个问题。

0
这有点像一个“无答案”:我只知道一个支持你所需功能的免费库,而且它并不小或简单易用。但无论如何,你可以看一下Crypto++。我猜其他人也会提到它。

0

您可以使用Capicom ActiveX控件。虽然它已经停止更新,但我认为这不会给您带来任何问题。它是Microsoft的CryptoAPI的包装器。

  • 它只是操作系统函数的包装器,因此非常小巧易用。

  • Microsoft提供了它的redist版本,因此您可以将其包含在您的程序中。

  • 它可以解密字符串。不确定是否支持流。

  • 它来自于MS,因此教程和社区支持是必然的。

  • 它支持多种加密算法。请注意,一些较新的算法在旧版Windows上不可用,因为它使用CryptoAPI。

它并不完美,但如果您想快速开发一些东西,它也不是一个坏选择。


嘿,这很酷,我会立即查看。还有其他随Windows/vs2008一起提供的加密API吗? - coreSOLO
NVM,我刚在MSDN上查看了“CAPICOM替代方案”,但列表本身看起来是加密的:\ - coreSOLO

0

这需要一个加密专业人士来使用。 - C.J.

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接