本帖最后由 gmajvfhpa 于 2018-1-13 14:04 编辑
修改原因:上传程序文件
写了一个控制台小程序,用于bin文件的AES加密。程序取名BinAddAes.exe,调用时,后面带三个字串,第一个是要加密文件的路径及文件名,第二个是加密后的保存路径及文件名,第三个是32个字符的密码。
mdk的设置方法:
节能.jpg (152.53 KB, 下载次数: 0)
下载附件
2018-1-13 13:47 上传
run1 填:C:Keil_v5ARMARMCCinfromelf.exe --bin -o ..OBJyuanhuKZ.bin ..OBJyuanhuKZ.axf ,这个fromelf.exe是MDK自带的,路经可能会有所不同,要根据实际位置更改。这个程序的作用是把MDK生成的*.axf生成 *.bin。
run2填:C:Keil_v5ARMARMCCinBinAddAes.exe ..OBJyuanhuKZ.bin ..OBJyuanhuKZ.aes 12345678901234567890123456789012 。把BinAddAes.exe拷贝到相应目录,建议与fromelf.exe相同目录下。这个程序的作用是把*bin加密后生成 *.aes。
BinAddAes的工程源码:
BinAddAes-VS2008.rar
(1.52 MB, 下载次数: 164)
2018-1-13 13:54 上传
点击文件名下载附件
单独的BinAddAes程序:
BinAddAes.rar
(5.1 KB, 下载次数: 135)
2018-1-13 14:03 上传
点击文件名下载附件
在加密的工程源码内有解密程序,先加密,再解密。解密后会生成aesbin.bin文件,并保存到调用程序时的当前目录
- char * aesbin = (char *)malloc(binsize);//申请内存
- if(aesbin== NULL)
- {
- printf("内存请求失败.
");
- fclose(fpaes);
- fclose(fpbin);
- return;//结束程序的执行
- }
- for (i = 0; i < 16; i++)
- {
- bufferIn[i] = 0;
- bufferOut[i] = 0;
- }
- aesDecInit();
- for (i=0;i<binsize;i+=16)
- {
- memcpy(bufferIn ,&aes[i],16);
-
- aesDecrypt(bufferIn,bufferOut);//解密
-
- memcpy(&aesbin[i] ,bufferIn,16);
- }
- if((fpbin=fopen("aesbin.bin","wb"))==NULL)//"解密后保存成文件,以便对比
- {
- printf("这文件 <%s> 打开失败.
",argv[1]);//打开操作不成功
- return;//结束程序的执行
- }
- fwrite( aesbin, sizeof( char ), binsize, fpbin );
- fclose(fpbin);
- free(aesbin);
- free(aes);
复制代码aes[]内是加密过的数据,aesbin[]保存解密的数据,之后保存到文件
一周热门 更多>