c++ - 请为 VC++ 2008 推荐一个好的加密库

标签 c++ encryption

<分区>

我正在做一个小项目,需要你的帮助。以下是详细信息:

  • 我的项目是在 VC++ 2008 中
  • 我需要将一些关键资源文件包与我的项目 exe 一起以加密形式存储
  • 在运行 exe 时,我想即时解密和使用这些文件(不将解密文件存储在临时位置)
  • 有问题的文件是二进制文件
  • 项目小而简单
  • 加密可以是简单的或适度安全的

我正在为一个简单的项目寻找一个加密库/sdk/toolkit,该库应该有以下要求

  • 它应该小巧且易于使用,我不需要很多功能,而且我的开发时间很短
  • 应该可以免费使用
  • 它应该能够解密流,或者直接在内存中解密文件,而无需将它们存储在任何临时位置
  • 它应该有很好的教程/示例/社区支持,我的开发时间很短
  • 它应该支持不止一种加密策略,这样我就可以在需要时切换到更好的算法,而无需更改库

我对加密库真的很陌生,请提出您的建议,我会自己做背景研究。

编辑

此外,您能否建议一种将我的 key 隐藏在 EXE 中的好方法?这是一个点击即运行的应用程序,无需任何注册或安装。

最佳答案

解密 key 是否会在您的程序中进行硬编码,或者由例如提供。许可证文件?

如果是硬编码,不要费心寻找任何类型的奇特加密,您所希望的只是一层(非常薄!)混淆 - 即使是简单的 XOR 加扰也不会比 AES 差。

就是说,查看 TomCryptCrypto++ .

编辑

您也可以选择非常简单的内容,例如 TEA .或者您可以坚持使用简单的 XOR 加密并压缩您的可执行文件;单字节 XOR 加密的一个很好的特性是加密数据仍然是可压缩的:)(买者警告:exe 压缩有时会在防病毒应用程序中触发误报)。

要记住的是,“如果它运行,它可能会被破坏”,所以专注于转移随意窥探的目光,而忘记防范“真正感兴趣的人”——这需要很多 努力和知识来做任何远程成功。

编辑2

为了“隐藏”解密 key ,您可以简单地存储二进制 key (解密算法本身使用的)而不是文本表示 - 或者您可以使用一串乱码。没关系,临时用户无论如何都无法使用该 key ,而且您不能对有决心的人隐藏它:)

关于c++ - 请为 VC++ 2008 推荐一个好的加密库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3760311/

相关文章:

python - 将 linux sha512 影子转换为十六进制

java - 如何使用 JNDI 和 Digest-MD5 向 LDAP 进行身份验证

php - 分析 Wordpress Hack : decrypting idca. php

c++ - shuffle/permute 内在函数如何为 256 位 pd 工作?

c++ - #define 数组索引不起作用

c++ - cpp - 头文件包含错误

c++ - 实例化 ActiveX 对象

php - 保护 PHP 文件

Android加密编辑文本输入

c++ - 为什么输出 vector 的大小会导致分配?