1. 程式人生 > 其它 >古典密碼學

古典密碼學

一、鍵盤密碼

利用了鍵盤上的橫縱座標。

 

 例如我們要對‘m’進行加密,我們可以寫成 32 ;當然我們也可以寫成 23 。

二、BrainFuck和Ook密碼

1.brainfuck 語言用> < + - . , [ ]八種符號來替換 C 語言的各種語法和命令。

 >  becomes  ++p;

 <  becomes  --p;

 +  becomes  ++*p;

 -  becomes  --*p;

 .  becomes  putchar(*p);

 ,  becomes  *p = getchar();

 [  becomes  while (*p) {

 ]  becomes  }

2.Ook 密碼和 Brainfuck 是一樣的概念,都是用於替換 c 語言的語法,但是語法元素更少。

示例:

將字串“meng”加密為Ook後:

Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook! Ook! Ook. Ook? Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook? Ook. Ook? Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook! Ook! Ook!
Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook! Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook!
Ook! Ook! Ook! Ook! Ook! Ook. Ook? Ook.

可以發現Ook只有三個元素 . ? ! 因此可以簡寫

三、摩斯密碼

摩斯密碼只有三個字元組成 '.'  '-'  ' '。點、下劃線、空格。

四、凱撒密碼

介紹:這是一種位移加密方式,只對 26 個字母進行位移替換加密。

示例:我們有密文字母表:ABCDEFGHIJKLMNOPQRSTUVWXYZ

   當我們讓偏移量為1的時候

   我們的明文字母表就變成了:ZABCDEFGHIJKLMNOPQRSTUVWXY  

         這時候我們對字串‘meng’加密就變為了----> ‘nfoh’。M往前移動一位變成了N;E往前位移了一位變成了F;同理。一下是我寫的一個簡單的凱撒加密python指令碼:

str = input("請輸入要加密的字串:") x = input("請輸入偏移量:")
s = "" for i in str: s += chr((ord(i)-97+int(x))%26+97)
print("加密後的字串為:" + s)  
下面我們介紹凱撒密碼解密:    

五、ROT13密碼

介紹:ROT13 是凱撒密碼的一種變體,移位數固定為 13,即把明文中的每一個字母在字母表中向後移動
13 位,數字和非字母字元保持不變。
示例:A 向後移動 13 位=N,N 向後移動 13 位=A,13 是 26 個英文字母的中間值。