現代密碼學教程第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表對應。比較簡單的指令碼就是把他們都移位...