openssl AES c
来源:互联网 发布:淘宝 css 布局框架 编辑:程序博客网 时间:2024/05/22 13:18
#include <openssl/aes.h>
int main(void) {
#define AES_SIZE_BIT 256
unsigned char keys[AES_SIZE_BIT / 8 + 1];
unsigned char buff[1024];
unsigned char encodes[1024];
int len = 0;
memset(buff, 0, sizeof(buff));
memset(keys, 0, sizeof(keys));
memset(encodes,0,sizeof(encodes));
strcpy((char*) keys, "password");
strcpy((char*) buff, "Hello world!");
if (strlen((char *) buff) % AES_BLOCK_SIZE == 0) { /*//aes加密数据输入/输出长度必须是16的倍数*/
len = strlen((char *) buff) + 1;
} else {
len = ((strlen((char *) buff) + 1) / AES_BLOCK_SIZE + 1)
* AES_BLOCK_SIZE;
}
log_d("len=%d", len);
{
uint8_t iv[] = { 0xA, 1, 0xB, 5, 4, 0xF, 7, 9, 0x17, 3, 1, 6, 8, 0xC,
0xD, 91 };
AES_KEY aes;
AES_set_encrypt_key(keys, AES_SIZE_BIT, &aes);
AES_cbc_encrypt(buff, encodes, len, &aes, iv, AES_ENCRYPT);
log_hex(encodes, 100, "encode:");
}
log_d("Key:%s", keys);
{
uint8_t iv[] = { 0xA, 1, 0xB, 5, 4, 0xF, 7, 9, 0x17, 3, 1, 6, 8, 0xC,
0xD, 91 };
log_hex(iv, 16, "iv:");
unsigned char decods[1024];
memset(decods, 0, sizeof(decods));
AES_KEY aes;
AES_set_decrypt_key(keys, AES_SIZE_BIT, &aes); //AES_SIZE_BIT: 128/256
AES_cbc_encrypt(encodes, decods, len, &aes, iv, AES_DECRYPT); //len: %16==0, iv-len=AES_BLOCK_SIZE=16
log_d("%s", decods);
}
return EXIT_SUCCESS;
}
int main(void) {
#define AES_SIZE_BIT 256
unsigned char keys[AES_SIZE_BIT / 8 + 1];
unsigned char buff[1024];
unsigned char encodes[1024];
int len = 0;
memset(buff, 0, sizeof(buff));
memset(keys, 0, sizeof(keys));
memset(encodes,0,sizeof(encodes));
strcpy((char*) keys, "password");
strcpy((char*) buff, "Hello world!");
if (strlen((char *) buff) % AES_BLOCK_SIZE == 0) { /*//aes加密数据输入/输出长度必须是16的倍数*/
len = strlen((char *) buff) + 1;
} else {
len = ((strlen((char *) buff) + 1) / AES_BLOCK_SIZE + 1)
* AES_BLOCK_SIZE;
}
log_d("len=%d", len);
{
uint8_t iv[] = { 0xA, 1, 0xB, 5, 4, 0xF, 7, 9, 0x17, 3, 1, 6, 8, 0xC,
0xD, 91 };
AES_KEY aes;
AES_set_encrypt_key(keys, AES_SIZE_BIT, &aes);
AES_cbc_encrypt(buff, encodes, len, &aes, iv, AES_ENCRYPT);
log_hex(encodes, 100, "encode:");
}
log_d("Key:%s", keys);
{
uint8_t iv[] = { 0xA, 1, 0xB, 5, 4, 0xF, 7, 9, 0x17, 3, 1, 6, 8, 0xC,
0xD, 91 };
log_hex(iv, 16, "iv:");
unsigned char decods[1024];
memset(decods, 0, sizeof(decods));
AES_KEY aes;
AES_set_decrypt_key(keys, AES_SIZE_BIT, &aes); //AES_SIZE_BIT: 128/256
AES_cbc_encrypt(encodes, decods, len, &aes, iv, AES_DECRYPT); //len: %16==0, iv-len=AES_BLOCK_SIZE=16
log_d("%s", decods);
}
return EXIT_SUCCESS;
}
阅读全文
0 0
- openssl AES c
- Openssl AES
- Openssl AES
- AES - Openssl AES 函数说明
- linux下面C 利用openssl的AES库加密,解密
- C语言利用openSSL库AES模块加密
- openssl aes 加密
- OpenSSL AES使用
- openssl之aes加密
- openssl aes+sha
- openssl AES加密
- AES - Java AES算法和openssl配对
- 使用Openssl的AES加密算法
- openssl aes 高级加解密
- 使用Openssl的AES加密算法
- 使用 openssl 的AES 加密
- 学习笔记:openssl , AES, vs2015
- OPENSSL库使用--AES篇
- pycharm如何破解
- C语言中socket使用讲解。
- Python创建第一个Django框架的Web项目
- 从源码角度分析postDelayed原理
- 谷歌推广AutoML:机器学习帮助人类解决人才空缺
- openssl AES c
- sql 批处理
- erlang 中间码
- 欧拉筛素数(顺便求欧拉函数)模板
- nginx教程
- Laravel 数据库操作基础知识总结
- SSH_两张表级联(CRUD)增删查改实例
- 5.5
- 窄带,宽带,频率选择性衰落,时间选择性衰落,相干带宽,以及大尺度衰落和小尺度衰落的定义