單錶代替和多表代替密碼體系

2021-10-02 08:22:44 字數 1393 閱讀 4858

一、實驗目的及要求

1. 掌握單錶代替和多表代替密碼體系

2. 從單錶代替或多表代替密碼中選取乙個密碼系統(除凱撒密碼),編寫程式實現該密碼系統

二、實驗裝置(環境)及要求

pc機, vc++等

三、實驗內容與步驟

1、加密(對**中的主要內容進行分析講解)

步驟:根據金鑰構造出字母代替表;

將要加密的字串的每乙個字元都減去『a』,得它們在26個字母表的位置;

知道位置後,找出它們在字母代替表中的位置,將其替換成對應的密文。

2、解密

步驟:將要解密的字串的每個字元與字母代替表的每個字元一一對比,找出字串字元在字母代替表的相對位置。

知道位置後,將字元替換為為26個字母表中相應位置的字母。

**:

#includevoid encrypt(char keystring,char word);  //加密 

void decode(char keystring,char word); //解密

int main()

} if(temp == 0)

}m = count;

while(c <= 'z')

}if(temp == 0)

c++;

} printf("請輸入要加密或解密的字串:");

scanf("%s",word);

printf("請輸入您要使用的功能:\n1.加密\n2.解密\n你要:");

scanf("%d",&temp);

switch(temp)

return 0;

}void encrypt(char keystring,char word) //加密

printf("%s", word);

}void decode(char keystring,char word) //解密

} }printf("%s", word);

}

四、實驗結果與資料處理金鑰:spect      明文:asdfgh

加密

解密(有上題得到密文:sqcabd)

五、分析與討論

不過單錶代替密碼存在乙個致命的缺點:可以通過對密文**現的各個字母進行統計,找出它們各自出現的頻率,進行假設,從而推導出相應的金鑰(旁路攻擊)。

mysql 表變數來代替臨 MySQL多表查詢優化

一 多表查詢連線的選擇 相信這內連線,左連線什麼的大家都比較熟悉了,當然還有左外連線什麼的,基本用不上我就不貼出來了。這圖只是讓大家回憶一下,各種連線查詢。然後要告訴大家的是,需要根據查詢的情況,想好使用哪種連線方式效率更高。二 mysql的join實現原理 在mysql 中,只有一種join 演算...

用表驅動代替switch case

不知道從什麼時候開始,switch case語句成了 壞味道的代名詞,寫 的時候小心翼翼地避開它,看到別人 中的switch case就皺眉頭,想想其實大可不必這樣,switch case語句並不是 壞味道的根源,壞味道來自糟糕的 結構 設計,比如過多的switch case分支,或者多重switc...

用表驅動代替switch case

不知道從什麼時候開始,switch case語句成了 壞味道的代名詞,寫 的時候小心翼翼地避開它,看到別人 中的switch case就皺眉頭,想想其實大可不必這樣,switch case語句並不是 壞味道的根源,壞味道來自糟糕的 結構 設計,比如過多的switch case分支,或者多重switc...