我用的万利199元的板。
AES256加密算法,用的是shaoziyang的源码,由于不会用C++,上位机用了C#开发,搞了一个多星期,C#加密出来的,老是和shaoziyang的AVRUB加密出来的不一样,就干脆用C++做了DLL,用C#调用。
不多说了,直接上源码。
上位机效果图
(原文件名:QQ截图20110923094605.jpg)
STM32下位机IAP升级里面,我把固件上传部分删掉了,既然加密,就是为了防破_解,读出来就没必要了。
C++里的DLL加密文件包
点击此处下载
ourdev_678831FMG4A4.zip(文件大小:11K) (原文件名:DLLTest.zip)
C#写的调用DLL加密的HEX转Bin文件包
点击此处下载
ourdev_678832NPWI4U.zip(文件大小:45K) (原文件名:Hex2Bin.zip)
MDK下的万利199元开发板的IAP源码
点击此处下载
ourdev_678833DAXD3A.zip(文件大小:521K) (原文件名:Usart.zip)
这是你写的程序:
/*----------------------------------------------------------------------------------------------*/
BufferIn=buf;
for (j = 0; j < packet_length; j += 16)
{
//解密数据包
aesDecrypt(BufferIn,bufferOut);
BufferIn+=16;
}
/*----------------------------------------------------------------------------------------------*/
RamSource = (uint32_t)buf;
你最后的赋值又是没解密的内容啊?
是不是应该是RamSource = (uint32_t)bufferOut;
没搞过AES,你的函数也没什么仔细的说明,求解?
谢谢指导。
当时我也是你这种理解,参数1为输入,参数2为输出。但实际不是的,解密后的数据,实际还是在参数1的位置。
你仔细试试就知道了。
-----------------------------------------------------------------------
原来如此,谢谢。
一周热门 更多>