c++ - 关于我应该使用的加密方法的建议

标签 c++ encryption crypto++

好的,所以我需要一些关于我当前项目应该使用哪种加密方法的建议。此处有关此主题的所有问题都与联网和将加密数据从一台机器传递到另一台机器有关。

系统工作原理的简要总结是:

我有一些数据保存在文本格式的表格中。然后我使用一个工具来解析这些数据并将其序列化为一个 dat 文件。这工作正常,但我需要加密此数据,因为它将与应用程序一起存储在公共(public)场所。数据不会被发送到应用程序读取的任何地方。我只是需要它被加密,这样如果它落入坏人之手,就无法读取数据。

我正在使用 crypto++ 库进行加密,并且我了解到它可以执行大多数类型的加密算法。然而,我注意到大多数算法使用公钥和私钥来加密/解密数据。这意味着我必须将私钥与对我来说似乎违反直觉的数据一起存储。有什么方法可以在不将私钥与数据一起存储的情况下执行加密?

最佳答案

我认为没有理由在您的案例中使用非对称加密。根据互联网访问的可用性,我看到了两种不错的解决方案:

  1. 将 key 存储在服务器上。只有当程序的用户登录到服务器时,他才能取回本地存储的 key 。
  2. 使用 PBKDF2 等 key 派生函数从密码派生 key 。

当然,如果攻击者耐心等待并安装键盘记录器并等待您下次访问这些文件,那么所有这一切都会失败。一旦您的机器遭到破坏,就无法保护您的数据。

关于c++ - 关于我应该使用的加密方法的建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6661633/

相关文章:

c++ - 为什么 std::string 对象的最大大小是 4611686018427387897?

逻辑应用中的 Azure Key Vault 用于加密或解密文件

c++ - 字符串到 SecByteBlock 的转换问题

c++ - 覆盖智能卡的 RSA 私钥操作?

c++ - 从 C++ 类调用变量到 Objective C 类

c++ - g++ 编译器标志以最小化二进制大小

C++(否定验证不起作用

javascript - HTML5 将加密的视频帧绘制到 Canvas (使用 clearkey 的加密媒体扩展)

c++ - session key - MSDN - Microsoft

c++ - 如何在使用 CryptoPP 解密流后执行 unpadding