上一篇博客写了openssl des加密解密的调用方法,这一篇继续上一篇的openssl探索。
由于DES已经被破解过,因此在某些安全级别高的信息加密上需要更加安全的加密算法,这就诞生了AES(高级加解密),AES是从多种加密算法选出来一种算法(Rijndael)作为AES加密标准的加密算法。其实严格准确点来说AES应该是一个加密标准,而习惯上我们认为AES就标准使用的加密算法(Rijndael)就是AES。这个概念有点绕,对这些概念不太清除或者混淆的请查查AES的历史,可以获得更加详细的说明。
C/C++是直接使用openssl库的crypte模块进行数据加解密的,下面介绍一下openssl/crypt调用DES进行加解密的过程。代码很容易理解,直接贴代码了:
// ECB模式加解密 – 最基本的加解密模式ECB
#include <stdio.h>
#include "evp.h"
#define BREAK_ERROR(msg){\
fprintf(stderr,"error break [%s]\n",msg);\
break;\
}
#define CIPHER_INFO(e){\
fprintf(stderr,"key_len:[%d]",EVP_CIPHER_CTX_key_length(e));\
fprintf(stderr,"iv_len :[%d]",EVP_CIPHER_CTX_iv_length(e));\
fprintf(stderr,"mode:[%d]",EVP_CIPHER_CTX_mode(e));\
fprintf(stderr,"flag