***

1691 ワード

静的ライブラリダウンロード接続Cryp++libダウンロード
DESの使用方法:
#include 
#include 

#pragma comment( lib, "cryptlibD.lib" )

using namespace std;
using namespace CryptoPP;

int main( void )
{
	//           ,    :
	cout << "DES Parameters: " << endl;
	cout << "Algorithm name : " << DES::StaticAlgorithmName() << endl; 

	unsigned char key[ DES::DEFAULT_KEYLENGTH ];
	unsigned char input[ DES::BLOCKSIZE ] = "12345";
	unsigned char output[ DES::BLOCKSIZE ];
	unsigned char txt[ DES::BLOCKSIZE ];

	cout << "input is: " << input << endl;

	//              
	DESEncryption encryption_DES;

	//         ,            。         。
	//  ,    。
	encryption_DES.SetKey( key, DES::KEYLENGTH );
	//    
	encryption_DES.ProcessBlock( input, output );

	//    
	//for for   cout    ,              
	//                    。
	//            ,      ,     。
	//      output         ,            。
	for( int i = 0; i < 5; i++ )
	{
	  cout << hex << (int)output[ i ] << ends;
	}
	cout << endl;

	//       
	DESDecryption decryption_DES;    

	//                     ,
	//                        key
	decryption_DES.SetKey( key, DES::KEYLENGTH );
	//    ,     txt 
	//decryption_DES.ProcessAndXorBlock( output, xorBlock, txt );
	decryption_DES.ProcessBlock( output, txt );

	//  ,  ,           。       :
	//                 。
	if ( memcmp( input, txt, 5 ) != 0 )
	{
	   cerr << "DES Encryption/decryption failed.
"; abort(); } cout << "DES Encryption/decryption succeeded.
"; system("pause"); return 0; }