資源簡介

代碼片段和文件信息
function?P=dezhuanlun(C)%P為明文,C為密文
lun1a=[1234567891011121314151617181920212223242526];
lun1b=[2122345167891011121314256171819201223242615];
lun2a=[2526123456789101112131415161718192021222324];
lun2b=[2324261781910212214251615718962011123413512];
zimu=[‘A‘‘B‘‘C‘‘D‘‘E‘‘F‘‘G‘‘H‘‘I‘‘J‘‘K‘‘L‘‘M‘‘N‘‘O‘‘P‘‘Q‘‘R‘‘S‘‘T‘‘U‘‘V‘‘W‘‘X‘‘Y‘‘Z‘];
L=length(C);
lun2a=circshift(lun2a[0mod(L26)-1]);%推算出加密后的轉輪
lun2b=circshift(lun2b[0mod(L26)-1]);
lun1a=circshift(lun1a[0floor(L/26)]);
lun1b=circshift(lun1b[0floor(L/26)]);
for?i=L:-1:1
????for?j=1:26
???????if?C(i)==zimu(j)
???????????m=j;%記錄下來對應的是哪個字母
???????end
????end
????for?d=1:26
????????????if?lun2a(d)==lun2b(m)
????????????????k=d;%記錄下第1輪右側對應的位置
????????????end
????end
????for?x=1:26
????????if?lun1a(x)==lun1b(k)
???????????r=x;%記錄下第一輪右側的位置
????????end
????end
????P(i)=zimu(r);
????lun2a=circshift(lun2a[0-1]);%每進行一次齒輪2回轉一次
????lun2b=circshift(lun2b[0-1]);
????if?mod(i26)==0%齒輪2每回轉動26次,齒輪1轉回轉一次
????????lun1a=circshift(lun1a[0-1]);
????????lun1b=circshift(lun1b[0-1]);
????end
end
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2018-11-01?16:04??轉輪機\
?????文件????????1286??2018-10-26?09:38??轉輪機\dezhuanlun.m
?????文件?????????175??2018-10-26?09:31??轉輪機\testzhuanlun.m
?????文件????????1084??2018-10-23?20:19??轉輪機\zhuanlun.m
- 上一篇:單相光伏并網逆變器matlab仿真
- 下一篇:灰色預測人口增長matlab
評論
共有 條評論