當前位置:編程學習大全網 - 源碼下載 - 幫忙用c++語言編譯個解密算法,最好能做成exe的

幫忙用c++語言編譯個解密算法,最好能做成exe的

#include <iostream>

#include <string>

using namespace std;

string ReverseStr(string strFormer)

{

string strReversed = "";

string:: iterator iter = strFormer.end();

while(iter != strFormer.begin())

{

strReversed += *(--iter);

}

return strReversed;

}

string Decode(string PlainStr, string key)

{

int i;

string jiemi;

string KeyChar;

string NewStr;

int Pos;

string Side1;

string Side2;

string strChar;

int _Vb_t_i4_0;

Pos = 1;

if(PlainStr.size()%2 == 0)

{

Side1 = ReverseStr(PlainStr.substr(0, PlainStr.size()/2));

Side2 = ReverseStr(PlainStr.substr(PlainStr.size()/2));

PlainStr = Side1 + Side2;

}

_Vb_t_i4_0 = PlainStr.size();

int bl_1, bl_2, bl_3, bl_4=0;

for(i=1; i<=_Vb_t_i4_0; i++)

{

strChar = PlainStr.substr(i-1, 1);

KeyChar = key.substr(Pos-1, 1);

bl_1 = (strChar[0] ^ KeyChar[0]) < 32? 1:0;

bl_2 = (strChar[0] ^ KeyChar[0]) > 126? 1:0;

bl_3 = (strChar[0] < 0? 1:0) | (bl_1 | bl_2);

bl_4 = (strChar[0] > 0xFF? 1:0) | bl_3;

if(bl_4)

{

cout << "if" << endl;

NewStr += strChar;

cout << "strChar :" <<endl;

}

else

{

cout << "else" << endl;

char ch = strChar[0] ^ KeyChar[0];

string str = "";

str += ch;

NewStr += str;

cout << strChar << " xor " << KeyChar << " is " << ch << endl;

}

if(key.size() == Pos)

{

cout << "key.size() == Pos" << endl;

Pos = 0;

}

Pos += 1;

}

jiemi = NewStr;

return jiemi;

}

int main()

{

string src("this is an apple");

string key("123456");

string decode = Decode(src,key);

cout<<decode<<endl;

return 0;

}

程序運行效果圖:

上例是在main函數裏用了測試的字符串和密碼。

如果想做成類似DOS命令壹樣的效果,請下載附件,裏面有源代碼和exe文件。

  • 上一篇:2021-12-23 在Ubuntu上安裝Samba
  • 下一篇:教育直播源代碼定制
  • copyright 2024編程學習大全網