用过AES加密算法的进来看看

愤怒的泡面 2011-09-20 06:26:58
最近用上了AES加密算法,从crypto抠了AES的代码出来用,但发现达不到我预期的效果。无论原始数据长度是多少,加密后依然是16字节,解密正常,但也只能还原16个字节的长度,余下的就被截断了。以下是代码:


int main(void)
{
const int ENCRYPT_BIT = 128; //密钥采用128位强度
const int SOURCE_LEN = 32; //原始数据长度

//原始数据
const unsigned char source_data[SOURCE_LEN] = "12345689012345123456789012345";

//密钥(这里是16字节,128 / 8 = 16)
unsigned char cipher_key[ENCRYPT_BIT / 8] = "g1hfg1n21bvh1";

//设置密钥
AES_KEY key;
aes_set_encrypt_key(cipher_key, ENCRYPT_BIT, &key);

//加密
unsigned char cipher_text[SOURCE_LEN];
memset((void*)cipher_text, 0, SOURCE_LEN);
aes_encrypt((const unsigned char *)source_data, cipher_text, &key);

printf("%s:%d\n", cipher_text, strlen((char*)cipher_text));


//以下是解密过程
cout << "解密:" << endl;

unsigned char plain_text[SOURCE_LEN];
memset((void*)plain_text, 0, SOURCE_LEN);
aes_set_decrypt_key(cipher_key, ENCRYPT_BIT, &key);
aes_decrypt(cipher_text, plain_text, &key);

cout << plain_text << endl;
system("pause");
return 0;
}


求大侠们解决一下这个问题,纠结一个下午了,感激不尽 T T
...全文
237 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
fandh 2011-09-21
  • 打赏
  • 举报
回复
http://download.csdn.net/detail/fandh/1118204
我以前做的,看看是否对你有帮助!
用户 昵称 2011-09-21
  • 打赏
  • 举报
回复
将输入数据分成若干个16字节的数据段,每段单独加密叫ecb加密,前后串联加密叫cbc加密。

不会把如何使用都给你封装好的。
罗平 2011-09-20
  • 打赏
  • 举报
回复
长字符串,各分割为16字节的子串加密,密文结果再相加,解密亦同。

如果是中文加密,则扩展为32字节。每个字符4个字节。

我是这么做的。
xyalter 2011-09-20
  • 打赏
  • 举报
回复
具体可以参考
http://blog.csdn.net/lixiaomin_235/article/details/3637977
xyalter 2011-09-20
  • 打赏
  • 举报
回复
while (sourceLen > destLen)
{
sourceFile.Read(m_from,m_len);
// Encrypt
AES_encrypt(m_from,m_to,&m_key);
destFile.Write(m_to,m_len);

// Update
destLen = destFile.GetLength();
sourceOff += m_len;
destOff += m_len;

// Move the point to current pos
sourceFile.Seek(sourceOff,CFile::begin);
destFile.Seek(destOff,CFile::begin);
}
xyalter 2011-09-20
  • 打赏
  • 举报
回复
aes_encrypt只是区块加密函数
你必须自己实现分块
愤怒的泡面 2011-09-20
  • 打赏
  • 举报
回复
顶起。。。
ljn398431 2011-09-20
  • 打赏
  • 举报
回复
学习学习 帮顶下
我将带领大家全面分析HLS(M3U8),包括直播、点播、多码流、AES加密、切片、等。您将亲自动手来操练,搭建环境、学习理论,分析总结:m3u8+Nginx+OpenSSL+FFmpeg具体包括包括如下:HLS直播协议详解FFmpeg+Nginx+VLC打造M3U8点播FFmpeg+Nginx+VLC打造M3U8直播FFmpeg:M3U8的多码流自适应Win10快速安装OpenSSL(不用编译源码)FFmpeg:M3U8的AES加密 -------------------------------------------------------------------音视频是一门很复杂的技术,涉及的概念、原理、理论非常多,很多初学者不学基础理论,而是直接做项目,往往会看到c/c++的代码时一头雾水,不知道代码到底是什么意思,这是为什么呢? 因为没有学习音视频的基础理论,就比如学习英语,不学习基本单词,而是天天听英语新闻,总也听不懂。所以呢,一定要认真学习基础理论,然后再学习播放器、转码器、非编、流媒体直播、视频监控、等等。 梅老师从事音视频与流媒体行业18年;曾在永新视博、中科大洋、百度、美国Harris广播事业部等公司就职,经验丰富;曾亲手主导广电直播全套项目,精通h.264/h.265/aac,曾亲自参与百度app上的网页播放器等实战产品。 目前全身心自主创业,主要聚焦音视频+流媒体行业,精通音视频加密、流媒体在线转码快编等热门产品。

19,468

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧