c++ - AESlibrary 只有两行

标签 c++ aes

有没有人知道一个使用高级加密标准加密的c++库,只需两行代码就可以实现加密和解密(使用计数器模式)。无需填充或缓冲明文库将处理所有这些。我看过 crypto++、openssl 和 libtomcrypt,但在这些中,我似乎需要编写代码来缓冲和填充我不想要的明文。简而言之,我需要这些方面的东西:

ciphertext = encrypt(ctr_mode(),plaintext,key)

plaintext = decrypt(ctr_mode(),ciphertext,key)

谢谢!

最佳答案

我不知道你要求密文是简单的AES计数器模式有多严格,但是Google's KeyCzar , 提供了您正在寻找的接口(interface)类型,比您描述的更安全。

他们有可用的 Python、Java 和 C++ 实现。此外,该库还处理许多其他加密最佳实践,包括一些您可能没有意识到的(例如概率加密、 key 版本控制等)

我不会轻易忽略 KeyCzar 提供的额外安全性。使用您描述的方案,如果您重复使用 key ,就会遇到很大的麻烦。因此,为了确保您永远不会重复使用 key ,您可能必须进行大量额外的 key 管理,这通常被认为是任何密码系统中最难的部分之一。由于草率的 key 管理,您的整个密码系统很容易崩溃!

如果您有兴趣,我可以进一步描述在您使用计数器模式等确定性加密方案时重复使用 key 的问题。

关于c++ - AESlibrary 只有两行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2536007/

相关文章:

c++ - Windows 计时器有时会以两倍的速度运行

c++ - 我正在阅读开源代码(C++),但不知道为什么他们这样放置枚举

java - Angular 4 中的 AES 128 加密和 Java 中的解密

javascript - 当 PassPhrase 相同时,需要 SJCL 进行相同的加密 AES 256 输出

java - InvalidKeyException 加密-解密文件 - Java/Android

c++ - 映射/设置迭代器不可递增

c++ - 将左值与抽象类一起使用

c++ - 查找 STL 迭代器的所有者

java - 加密我的 Android 应用程序中的数据库条目

java - 如何将字节数组转换为 key 格式?