Vigenere加密法C++实现代码
2019獨角獸企業(yè)重金招聘Python工程師標(biāo)準(zhǔn)>>>
//Vigenere加密法
#include"DouListNode.h"
#include"DouList.h"
#include<iterator>
#include<ctime>
#include<string>
#include<list>
#include<iostream>
using namespace std;
int main()
{
?srand((unsigned)time(NULL));
?DouList<char> planText;
?DouList<char>cryptograph;
?DouList<int> key;
?DouList<char>trans;
?planText.SetBegin();
?planText.AddTail('Y');
?planText.AddTail('o');
?planText.AddTail('u');
?planText.AddTail('a');
?planText.AddTail('r');
?planText.AddTail('e');
?planText.AddTail('i');
?planText.AddTail('n');
?planText.AddTail('d');
?planText.AddTail('a');
?planText.AddTail('n');
?planText.AddTail('g');
?planText.AddTail('e');
?planText.AddTail('r');
?planText.AddTail('!');
?planText.SetBegin();
?//
?cout<<"明文:"<<endl;
?for(int i=0;i<planText.GetCount();i++)
?{
??cout<<planText.GetNext()<<"*";
?}
?cout<<endl;
?for(int i=0;i<6;i++)
?{
??key.AddTail(rand()%50);
?}
?cout<<"密鑰:"<<endl;
?for(int i=0;i<key.GetCount();i++)
?{
??cout<<key.GetNext()<<"*";
?}
?cout<<endl;
?planText.SetBegin();
?key.SetBegin();
?cryptograph.SetBegin();
?for(int i=0;i<planText.GetCount();i++)
?{
??cryptograph.AddHead(key.GetNext()+planText.GetNext());
?}
?cryptograph.SetBegin();
?cout<<"密文:"<<endl;
?for(int k=0;k<cryptograph.GetCount();k++)
?{
??cout<<cryptograph.GetNext();
?}
?cout<<endl;
?trans.SetBegin();
?key.SetBegin();
?planText.SetBegin();
?for(int i=0;i<planText.GetCount();i++)
?{
??trans.AddHead(cryptograph.GetPrior()-key.GetNext());
?}
?trans.SetBegin();
?cout<<"解密后:"<<endl;
?for(int k=0;k<trans.GetCount();k++)
?{
??cout<<trans.GetPrior();
?}
?cout<<endl;
?system("pause");
?return 0;
}
參考自左飛的教材
轉(zhuǎn)載于:https://my.oschina.net/u/181847/blog/43002
總結(jié)
以上是生活随笔為你收集整理的Vigenere加密法C++实现代码的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 巫师3结局选择有几种
- 下一篇: s3c2440移植MQTT