各位知识分子,
void aes_256_decrypt(unsigned char *ciphertext, int cipher_len, unsigned char *key, unsigned char *iv, unsigned char *plaintext) {
AES_KEY aes_key;
int len;
EVP_CIPHER_CTX* ctx = EVP_CIPHER_CTX_new();
EVP_DecryptInit_ex(ctx, EVP_aes_256_cbc(), NULL, key, iv);
EVP_DecryptUpdate(ctx, plaintext, &len, ciphertext, cipher_len);
EVP_DecryptFinal_ex(ctx, plaintext + len, &len);
EVP_CIPHER_CTX_free(ctx);
}
我试图用AES 256和openssl解密一个简单的文本文件,文件解密正确。但是,当打印出来时,填充仍然存在。库中是否有任何内置的方法来删除填充,以便仅保留原始内容?
我加密了一行“Hello World”,现在正在解密它。原始行的一部分显示出来了,但在接近结尾的时候有一堆填充,这些填充应该在解密后被删除。
1条答案
按热度按时间ghhkc1vu1#
想通了;我只是忘了在明文的末尾放一个空终止符。填充物沿着被正确地切断。