📄 desde.c
字号:
#include <stdio.h>
#include "scertlinux.h"
#include <string.h>
int main(int argc,char *argv[],char *envp[])
{
unsigned char output[4096];//输出
unsigned char input[4096];//输入
int i[4],ret=0;
int j=0,count=0,filelen=0,tmplen=0;
FILE *fp,*tmpfp;
memset(output,0,4096);
memset(input,0,4096);
//判断是加密还是解密--加密
if(strcmp(argv[1],"-e")==0)
{
//读取要加密的文件
if((fp=fopen(argv[2],"rb"))==NULL){
printf("Open InputFile Error!\n");
return -1;
}
//写加密后的文件
if((tmpfp=fopen(argv[3],"wb"))==NULL){
printf("Creat DecFile Error!\n");
return -1;
}
//计算文件大小
fseek(fp,0L,SEEK_END);
filelen=ftell(fp);
fseek(fp,0L,SEEK_SET);
//求除数为了共加密多少次
count=filelen/1024;
//求余数为了获取剩余没有加密的数据大小
tmplen=filelen%1024;
//循环加密每次加密1024bit
for(j=0;j<count;j++)
{
memset(input,0,4096);
memset(output,0,4096);
//读取文件1024bit,文件指针后移
fread(input,1,1024,fp);
//加密后输出数据大小
i[0]=1024;
//加密
ret=Crypt_Dec_Data_Des(input,1024,output,i,"12345678901234567890123456789012");
//向输出文件写数据
if(ret!=0)
{
printf("Data Dec Error!\n");
return ret;
}
else
fwrite(output,1,1024,tmpfp);
}
//加密剩余数据
if(tmplen!=0)
{
memset(input,0,4096);
memset(output,0,4096);
i[0]=tmplen;
fread(input,1,tmplen,fp);
ret=Crypt_Dec_Data_Des(input,tmplen,output,i,"12345678901234567890123456789012");
if(ret!=0){
printf("Data Dec Error!\n");
return ret;
}
else
fwrite(output,1,tmplen,tmpfp);
}
fclose(fp);
fclose(tmpfp);
}
//判断是加密还是解密--解密
if(strcmp(argv[1],"-d")==0)
{
//打开要解密的文件
if((fp=fopen(argv[2],"rb"))==NULL){
printf("Open InFile Error!\n");
return -1;
}
//创建解密文件
if((tmpfp=fopen(argv[3],"wb"))==NULL){
printf("Creat EncFile Error!\n");
return -1;
}
//计算加密文件大小
fseek(fp,0L,SEEK_END);
filelen=ftell(fp);
fseek(fp,0L,SEEK_SET);
//同上
count=filelen/1024;
tmplen=filelen%1024;
for(j=0;j<count;j++){
memset(input,0,4096);
memset(output,0,4096);
fread(input,1,1024,fp);
i[0]=1024;
ret=Crypt_Enc_Data_Des(input,1024,output,i,"12345678901234567890123456789012");
if(ret!=0)
{
printf("Data Enc Error!\n");
return ret;
}
else
fwrite(output,1,1024,tmpfp);
}
//同上
if(tmplen!=0)
{
memset(input,0,4096);
memset(output,0,4096);
i[0]=tmplen;
fread(input,1,tmplen,fp);
ret=Crypt_Enc_Data_Des(input,tmplen,output,i,"");
if(ret!=0)
{
printf("Data Enc Error!\n");
return ret;
}
else
fwrite(output,1,tmplen,tmpfp);
}
fclose(fp);
fclose(tmpfp);
}
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -