標題:
[20111105]古典密碼加解密測試
[打印本頁]
作者:
ray
時間:
2011-11-5 20:50
標題:
[20111105]古典密碼加解密測試
本帖最後由 ray 於 2011-11-5 20:52 編輯
#include<iostream>
using namespace std;
//寫一個交換函數 for 打亂編碼表
void swap(int *a,int *b)
{
int *t = a;
a = b;
b = t;
}
int main()
{
int enctab[256],dectab[256];
//將0-255填入編碼字元表
for(int i=0;i<256;i++)
enctab
= i;
//打亂編碼字元表 使用rand()取"欲編碼字元數量"的餘數
for(int i=0;i<256;i++)
swap(enctab[rand()%256],enctab[rand()%256]);
//for(int i=0;i<256;i++)
// cout << enctab
<< " ";
//利用編碼表建立解碼表
for(int i=0;i<256;i++)
dectab[enctab
] = i;
string s;
int i;
//使用無窮迴圈輸入明文字串(s)
while(cin >> s)
{
//將明文字串的每一個字元對照編碼錶取得編碼字元後存回
for(i=0;i<s.length();i++)
{
s
= enctab[s
+128]-128;
}
//輸出加密後的密文
cout << "encode:" << s << endl;
//將密文字串的每一個字元對照解碼錶取得解碼字元後存回
for(i=0;i<s.length();i++)
{
s
= dectab[s
+128]-128;
}
//輸出解密後的明文
cout << "decode:" << s << endl;
}
return 0;
}
歡迎光臨 種子論壇 | 高雄市資訊培育協會學員討論區 (http://istak.org.tw/seed/)
Powered by Discuz! 7.2