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);.....}
补充:综合编程 , 其他综合 ,