南郵密碼學實驗 轉輪密碼機

2021-10-04 19:37:00 字數 1140 閱讀 4537

現代密碼學教程第2版[谷利澤,鄭世慧,楊義先編著]2023年版

輸入乙個字母

根據對應的慢輪子、中輪子、快輪子的對應的變換,

輸出另乙個字母

每輸入乙個,慢輪子下轉一格,

慢輪子轉一圈之後,中輪子下轉一格,

中輪子下轉一圈,快輪子下轉一格

1、對於這個輪子來說,他的屬性是固定的,也就是輸入、輸出,行為也是固定的,就左右數字匹配、旋轉

所以覺得用物件導向方便些

這題面向程式設計的寫法我朋友寫了,看上去有點麻煩:

2、然後我稍微加了點,確保穩定性:若讀取小寫字母,變為大寫字母,若讀取非字母,直接輸出

3、當然這題用python應該更好寫一點,不過c++都寫出來了,python重構下應該也不費事(

#include#include#define n 100005

using namespace std;

class wheel //定義輪子類

;void wheel::set(int *l,int *r,int time=0)

}void wheel::read(int i)

return 0;

}int wheel::match(int x)

}class wheelmachine //定義密碼機類

;void wheelmachine::reset()

; int sl[26]=;

int sr[26]=;

int ml[26]=;

int mr[26]=;

int fl[26]=;

int fr[26]=;

slow.set(sl,sr);

middle.set(ml,mr);

fast.set(fl,fr);

}void wheelmachine::read()

cout<

}int main()

密碼學實驗二

miller rabin檢測 miller rabin檢測是目前應用比較廣泛的一種 二次探測定理 如果p是乙個素數,且0這就是miller rabin素性測試的方法。不斷地提取指數n 1中的因子2,把n 1表示成d 2 r 其中d是乙個奇數 那麼我們需要計算的東西就變成了a的d 2 r次方除以n的餘...

實驗吧 密碼學trivial

原題 usr bin env python import sys alphal abcdefghijklnmopqrstuvqxyz alphau abcdefghijklmnopqrstuvqxyz num 0123456789 keychars num alphal alphau if len ...

實驗吧 密碼學 變異凱撒

afz r9vyfscoeo ul rwuc 既然是凱撒,本質還是移位密碼,但是要注意區別,看到比傳統的凱撒增加了字元和數字,但是問題在於加了那些符號字元。為了避免這個問題,我們可以直接算移位個數,a f 移位5,f l移位6,z a移位7 似乎又與ascii表對應。比較簡單的指令碼就是把他們都移位...