AES简介:
高级加密标准为最常见的对称加密算法。对称加密算法也就是加密和解密用相同的密钥。
AES加密方式有五种:ECB、CBC、CTR、CFB、OFB
CBC:加密需要一个十六位的key密钥和一个十六位iv偏移量
ECB:加密不需要iv
AES在线加解密:在线AES加密解密、AES在线加密解密、AES encryption and decryption--查错网
如下为采用ECB加密模式、pkcs7填充、128位数据块、base64编码
实现代码如下:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <openssl/aes.h>
#include <openssl/rand.h>
#include <openssl/evp.h>
#include <openssl/bio.h>
#include <openssl/buffer.h>
#include <errno.h>
char SESSION_KEY[128] = "1234567890123456";
void handleOpenSSLErrors(void)
{
unsigned long errCode;
errCode = 0;
printf("An error occurred\n");
while(errCode == ERR_get_error()) {
char *err = ERR_error_string(errCode, NULL);
printf("%s\n", err);
}
//abort();
}
char * base64Encode(const char *buffer, int length, int newLine)
{
BIO *bmem = NULL;
BIO *b64 = NULL;
BUF_MEM *bptr;
b64 = BIO_new(BIO_f_base64());
if (!newLine) {
BIO_set_flags(b64, BIO_FLAGS_BASE64_NO_