Crypto++学习总结---DES

发布时间:2016-12-6 22:22:57 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"Crypto++学习总结---DES",主要涉及到Crypto++学习总结---DES方面的内容,对于Crypto++学习总结---DES感兴趣的同学可以参考一下。

DES 使用方法: #include <iostream> #include <des.h> #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.\n"; abort(); } cout << "DES Encryption/decryption succeeded.\n"; system("pause"); return 0; }

上一篇:linux系统中scp命令的用法
下一篇:sqlalchemy 学习教程

相关文章

相关评论