C++ 用OpenSSL实现密文窃取

C++ 用OpenSSL实现密文窃取,c++,encryption,cryptography,openssl,aes,C++,Encryption,Cryptography,Openssl,Aes,我正在使用OpenSSL的EVP_*API在CBC模式下实现AES加密 我试图实现密文窃取,以保持加密文本与纯文本的长度相同。我找到了一种方法来关闭填充EVP_CIPHER_CTX_set_padding,但这似乎并没有打开密文窃取而不是填充 有人举过如何进行密文窃取的例子吗?我从2007年找到了一个用于OpenSSL的实现chiphertext窃取的示例。它还没有包括在内,但将代码包括到我的应用程序中没有问题。虽然通常不赞成创建自己的加密,但如果没有得到好的答案,您可能希望自己实现它,因为它可

我正在使用OpenSSL的EVP_*API在CBC模式下实现AES加密

我试图实现密文窃取,以保持加密文本与纯文本的长度相同。我找到了一种方法来关闭填充EVP_CIPHER_CTX_set_padding,但这似乎并没有打开密文窃取而不是填充


有人举过如何进行密文窃取的例子吗?

我从2007年找到了一个用于OpenSSL的实现chiphertext窃取的示例。它还没有包括在内,但将代码包括到我的应用程序中没有问题。

虽然通常不赞成创建自己的加密,但如果没有得到好的答案,您可能希望自己实现它,因为它可能没有包括在openssl库中,有时很难说。这种模式通常很容易实现。不过,请注意,任何没有完整性保护的解密都有点危险。@owlstead:Wikipedia提到了一种使用标准CBC引擎实现密文窃取的方法,但如果可以,我宁愿使用已经过测试的东西,也不愿创建自己的。当然,这应该是首选,但是OpenSSL并不支持每一种模式,所以如果你在互联网上找不到它,你很有可能得不到答案。您可以改用CTR模式,它是分组密码的流密码模式,也不需要填充。@owlstead:CTR需要唯一的IVs来确保安全。