?? 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 + -