资源简介
从Linux内核移植而来的AES算法,应用于VC中实现加密BMP图片,算法的效率很快
代码片段和文件信息
#include“AES.H“
#include“ENTRY.h“
#include“KEY.h“
#include“BMP.h“
#include“stdio.h“
#include“string.h“
struct BITMAPINFOHEADER bmih;
struct BITMAPFILEHEADER bmfh;
int AES_Encrypt(char *plainFile char *keyStrint keylengthchar *cipherFile){
FILE *plain*cipher;
int countstlen;
int filelen;
char plainBlock[16]cipherBlock[16];
//密钥设置
struct crypto_aes_ctx key;
char str[32];
memcpy(strkeyStrkeylength);
crypto_aes_expand_key(&key(unsigned char *)strkeylength);
//打开文件
if((plain = fopen(plainFile“rb“)) == NULL){
return -1;
}
if((cipher = fopen(cipherFile“wb“)) == NULL){
return -1;
}
fseek(plain0SEEK_END); //将文件指针置尾
filelen = ftell(plain); //取文件指针当前位置
rewind(plain); //将文件指针重指向文件头
filelen-=sizeof(bmfh)+sizeof(bmih);
s=filelen/16;
t=filelen%16;
len=sizeof(bmfh);
count=fread(&bmfhsizeof(char)lenplain);
fwrite(&bmfhsizeof(char)lencipher);
len=sizeof(bmih);
count=fread(&bmihsizeof(char)lenplain);
fwrite(&bmihsizeof(char)lencipher);
while(s>0){
//每次读16个字节,并返回成功读取的字节数
if((count = fread(plainBlocksizeof(char)16plain)) == 16){
aes_encrypt(&key(u8*)cipherBlock(u8*)plainBlock);
fwrite(cipherBlocksizeof(char)16cipher);
}
s--;
}
if(t){
fread(cipherBlocksizeof(char)tplain);
fwrite(cipherBlocksizeof(char)tcipher);
}
fclose(plain);
fclose(cipher);
return OK;
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 1572918 2011-03-05 21:18 AES\1.BMP
文件 1572918 2011-04-08 14:18 AES\2.bmp
文件 1572918 2011-04-08 14:18 AES\3.bmp
文件 1678 2011-03-14 16:20 AES\AES.c
文件 0 2011-03-14 16:24 AES\AES.cpp
文件 4601 2011-03-16 18:54 AES\AES.dsp
文件 531 2011-03-14 12:50 AES\AES.dsw
文件 53155 2011-03-17 20:35 AES\AES.h
文件 66560 2011-04-08 14:18 AES\AES.ncb
文件 50688 2011-04-08 14:18 AES\AES.opt
文件 1446 2011-04-08 14:18 AES\AES.plg
文件 913 2011-03-14 16:27 AES\BMP.h
文件 558 2011-03-18 10:56 AES\chaos.h
文件 66560 2011-03-15 14:35 AES\Debug\AES.bsc
文件 249933 2011-04-08 14:18 AES\Debug\AES.exe
文件 240056 2011-04-08 14:18 AES\Debug\AES.ilk
文件 1452 2011-03-14 16:24 AES\Debug\AES.obj
文件 297712 2011-04-08 14:18 AES\Debug\AES.pch
文件 484352 2011-04-08 14:18 AES\Debug\AES.pdb
文件 0 2011-03-14 16:24 AES\Debug\AES.sbr
文件 56516 2011-04-08 14:18 AES\Debug\main.obj
文件 19009 2011-04-08 14:18 AES\Debug\main.sbr
文件 50176 2011-04-08 14:18 AES\Debug\vc60.idb
文件 53248 2011-04-08 14:18 AES\Debug\vc60.pdb
文件 1870 2011-03-14 16:40 AES\DETRY.h
文件 1966 2011-03-17 22:54 AES\ENTRY.h
文件 3782 2011-03-18 08:47 AES\KEY.h
文件 4148 2011-03-18 10:56 AES\main.cpp
文件 987054 2011-03-17 23:40 AES\tyf.bmp
文件 1440056 2011-03-17 23:40 AES\山.bmp
............此处省略7个文件信息
- 上一篇:[微机原理及接口技术].盛珣华&张凡.扫描版
- 下一篇:拼接大屏软件
评论
共有 条评论