【问题标题】:C++ How would I encrypt a Byte Array? [closed]C++ 如何加密字节数组? [关闭]
【发布时间】:2015-10-08 02:36:12
【问题描述】:

如果我要加密一个字节数组,可能会使用 AES 或 DES。我知道如何在 C# 中做到这一点,但不知道 C++。任何帮助将不胜感激,谢谢。

【问题讨论】:

  • 或许贴出你的c#代码
  • 您想自己实现 AES(缺乏测试,不推荐)还是使用 3rd 方库(crypto、openssl 等)?缩小范围,阅读他们的手册和示例,并询问您是否仍有问题。
  • 如果可以不使用库,我会更喜欢:/
  • 详细讨论请参考以下链接stackoverflow.com/questions/2489379/…
  • 当然不用图书馆也可以自己做。但是,我建议不要这样做,除非出于教育目的。这并不好笑,您真的希望安全例程坚如磐石,针对各种实施错误和极端情况进行测试,并符合标准(例如填充)。

标签: c++ arrays encryption compression byte


【解决方案1】:

反对在生产代码上滚动您自己的加密

您不希望使用任何库,here 您可以找到官方的 AES (Rijndael) 规范。
它们非常简洁明了,当然,您必须具备开发加密方案的最低数学背景。在这种情况下,Finite Fields 就可以了。

请允许我警告您有关您的这种选择,除非您这样做是为了研究密码的工作原理。
加密算法大多数时候是无用的,你需要一个加密方案。
例如,如果没有实现 CBC 链接,您基本上什么都不做。
所以你还必须实现block cipher mode

这需要很多时间,但最重要的是:您绝对必须以数学和编程方式(甚至在较低级别)完全理解算法的各个方面
您可以交换两条指令或执行简单的无害优化,您的整个方案都被破坏了。 想想Heartbleed

像 OpenSSL 这样的库很久以前就开始加密了,他们真的知道自己在做什么。
此外,这样的库很容易use

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-05-08
    • 2015-12-04
    • 1970-01-01
    • 1970-01-01
    • 2013-11-17
    • 2017-08-06
    • 1970-01-01
    • 2020-06-22
    相关资源
    最近更新 更多