当前位置:编程学习 > 网站相关 >>

openssl库中AES 解密的实践体会

最近在项目中遇到了对AES-128加密的TS流进行解密,很自然地我想到了用开源的openssl库,通过初步研究AES解密API的使用,实现了成功解密,看到了TS视频流的播放,可纳闷地是偶尔会出现严重的马赛克,于是便仔细核查原因,首先我TS流过来是一小片段一小片段的,那么是不是初始化向量出问题了,再者就是流的加密是不是算法有问题,最后分析方向应该从第一个原因下手,找到原因发现原来我每个片段的初始化向量被AES解密的函数更新了,使得有的片段初始化向量不正确了,所以用一个全局值来保存每个IV即可,每次IV传递过来做一个memcpy动作。简单示例如下:
INIT:
AES_set_decrypt_key(userKey, 128,  aeskey);
memcpy(aesIV,IV,16);
DECRYPT:
 
while(1)
{
......
  AES_cbc_encrypt(data_in, data_out,  16,
 
aeskey,    aesIV, 
AES_DECRYPT);
 
.....
}
补充:综合编程 , 其他综合 ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,