DES加密:
#include <iostream>
#include <des.h>
#pragma comment( lib, "cryptlib.lib" )
using namespace std;
using namespace CryptoPP;
int main(int argc,char* argv[])
{
unsigned char aesKey[ DES::DEFAULT_KEYLENGTH ];
memcpy(aesKey,argv[2],sizeof(argv[2]));
unsigned char input[ DES::BLOCKSIZE ];
unsigned char output[ DES::BLOCKSIZE ];
unsigned char txt[ DES::BLOCKSIZE ];
DESEncryption encryption_DES;
encryption_DES.SetKey( aesKey, DES::KEYLENGTH );
DESDecryption decryption_DES;
decryption_DES.SetKey( aesKey, DES::KEYLENGTH );
FILE *in,*out,*tmp;
int count;
static char tmpfile[]="~u~0_sw~.f~l";
in =fopen(argv[1],"rb");
out =fopen(tmpfile,"wb"); /* creat a temp file */
while( !feof(in) )
{
memset( input, 0, DES::BLOCKSIZE ); //置零
count=fread(input,1,DES::BLOCKSIZE,in);
encryption_DES.ProcessBlock( input, output );
fwrite(output,1,DES::BLOCKSIZE,out);
}
fclose(in);
fclose(out);
remove(argv[1]);
rename(tmpfile,argv[1]);
system("pause");
return 0;
}
DES解密:
#include <iostream>
#include <des.h>
#pragma comment( lib, "cryptlib.lib" )
using namespace std;
using namespace CryptoPP;
int main(int argc,char* argv[])
{
unsigned char aesKey[ DES::DEFAULT_KEYLENGTH ];
memcpy(aesKey,argv[2],sizeof(argv[2]));
unsigned char input[ DES::BLOCKSIZE ];
unsigned char output[ DES::BLOCKSIZE ];
unsigned char txt[ DES::BLOCKSIZE ];
DESEncryption encryption_DES;
encryption_DES.SetKey( aesKey, DES::KEYLENGTH );
DESDecryption decryption_DES;
decryption_DES.SetKey( aesKey, DES::KEYLENGTH );
FILE *in,*out,*tmp;
int count;
static char tmpfile[]="~u~0_sw~.f~l";
in =fopen(argv[1],"rb");
out =fopen(tmpfile,"wb"); /* creat a temp file */
while( !feof(in) )
{
memset( input, 0, DES::BLOCKSIZE ); //置零
count=fread(input,1,DES::BLOCKSIZE,in);
decryption_DES.ProcessBlock( input, txt );
fwrite(txt,1,count,out);
}
fclose(in);
fclose(out);
remove(argv[1]);
rename(tmpfile,argv[1]);
system("pause");
return 0;
}