📄 filee.cpp
字号:
/*this file include fileE function this function used to encrypt a file*/
#include"fileE.h"
#define BUFFMAXSIZE 16
int fileE(unsigned char *passwd,char *fn_in,char *fn_out)
{
unsigned char in[BUFFMAXSIZE],out[BUFFMAXSIZE],endc='\0';
#ifdef CBC
unsigned char iv[BUFFMAXSIZE];
iv[0]='\0';
int i;
#endif
BIO *f_in,*f_out;
int bits=128,len;
AES_KEY key;
f_in=BIO_new_file(fn_in,"r");
if(f_in==NULL)
{
//错误处理
printf("open file %s error!",fn_in);
return 0;
}
f_out=BIO_new_file(fn_out,"w");
if(f_out==NULL)
{
//错误处理
printf("open file %s error!",fn_out);
return 0;
}
if(AES_set_encrypt_key(passwd, bits,&key)!=0) printf("AES_set key error!");// 错误处理
while(1)
{
len=BIO_read(f_in,in,BUFFMAXSIZE);
if(len==0||len==-1) {break;}
if(len<BUFFMAXSIZE)
{
for(;len<=BUFFMAXSIZE;in[len]='\0',len++);
}
#ifdef CBC //cbc模式
if(iv[0]!='\0')
{
for(i=0;i<=len;in[i]=iv[i]^in[i],i++);
}
#endif
AES_encrypt(in,out,&key);
#ifdef CBC
{for(i=0;i<=len;iv[i]=out[i],i++);}
#endif
BIO_write(f_out,out,BUFFMAXSIZE);
}
BIO_free(f_in);
BIO_free(f_out);
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -