【发布时间】:2015-03-24 21:13:55
【问题描述】:
我正在使用 Ubuntu 14.10 并尝试使用 C 和 OpenSSL 获得与使用命令相同的输出:
openssl enc -aes-256-cfb8 -in test -out test.enc -K $key -iv $iv
我已经为此工作了两天但没有得到它,加密工作但它不是我应该得到的。
我的代码是:
int outlen, inlen;
unsigned char inbuf[BUFSIZE] , outbuf[BUFSIZE];
strcpy(inbuf,text);
EVP_CIPHER_CTX ctx;
EVP_CIPHER_CTX_init(&ctx);
EVP_EncryptInit_ex(&ctx, EVP_aes_256_cfb8(), NULL, key, iv);
int i =0;
int n = strlen(text);
for(i; i < n; i++) {
if(!EVP_EncryptUpdate(&ctx, outbuf, &outlen, inbuf, 1))
return 0;
}
if(!EVP_EncryptFinal(&ctx, outbuf, &outlen))
return 0;
EVP_CIPHER_CTX_cleanup(&ctx); P_EncryptFinal(&ctx, outbuf, &outlen))
return 0;
EVP_CIPHER_CTX_cleanup(&ctx); i < n; i++) {
if(!EVP_EncryptUpdate(&ctx, outbuf, &outlen, inbuf, 1))
return 0;
}
if(!EVP_EncryptFinal(&ctx, outbuf, &outlen))
return 0;
EVP_CIPHER_CTX_cleanup(&ctx);
谢谢!
【问题讨论】:
标签: c encryption openssl cryptography aes