




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第Python實現(xiàn)簡易凱撒密碼的示例代碼目錄概念及原理實現(xiàn)過程破解原理及實現(xiàn)
概念及原理
根據(jù)百度百科上的解釋,凱撒密碼是一種古老的加密算法。
密碼的使用最早可以追溯到古羅馬時期,《高盧戰(zhàn)記》有描述愷撒曾經(jīng)使用密碼來傳遞信息,即所謂的愷撒密碼,它是一種替代密碼,通過將字母按順序推后起3位起到加密作用,如將字母A換作字母D,將字母B換作字母E。因據(jù)說愷撒是率先使用加密函的古代將領(lǐng)之一,因此這種加密方法被稱為愷撒密碼。這是一種簡單的加密方法,這種密碼的密度是很低的,只需簡單地統(tǒng)計字頻就可以破譯?,F(xiàn)今又叫移位密碼,只不過移動的為數(shù)不一定是3位而已。
密碼術(shù)可以大致別分為兩種,即易位和替換,當然也有兩者結(jié)合的更復雜的方法。在易位中字母不變,位置改變;替換中字母改變,位置不變。
將替換密碼用于軍事用途的第一個文件記載是愷撒著的《高盧記》。愷撒描述了他如何將密信送到正處在被圍困、瀕臨投降的西塞羅。其中羅馬字母被替換成希臘字母使得敵人根本無法看懂信息。
蘇托尼厄斯在公元二世紀寫的《愷撒傳》中對愷撒用過的其中一種替換密碼作了詳細的描寫。愷撒只是簡單地把信息中的每一個字母用字母表中的該字母后的第三個字母代替。這種密碼替換通常叫做愷撒移位密碼,或簡單的說,愷撒密碼。
在密碼學中,凱撒密碼(或稱愷撒加密、愷撒變換、變換加密)是一種最簡單且最廣為人知的加密技術(shù)。它是一種替換加密的技術(shù)。這個加密方法是以愷撒的名字命名的,當年愷撒曾用此方法與其將軍們進行聯(lián)系。愷撒密碼通常被作為其他更復雜的加密方法中的一個步驟,例如維吉尼亞密碼。愷撒密碼還在現(xiàn)代的ROT13系統(tǒng)中被應用。但是和所有的利用字母表進行替換的加密技術(shù)一樣,愷撒密碼非常容易被破解,而且在實際應用中也無法保證通信安全。
說了這么多,相信大家可能也有點暈了,下面這張圖加密方法就是錯三個位來實現(xiàn)加密功能
(1)設(shè)計思想:
1.由于輸入的是一串英文字符,所以我們用String類來編寫,況且String類有許多方法可以調(diào)用
2.錯位需要對每個字符進行操作,可以把字符串轉(zhuǎn)換為字符數(shù)組,調(diào)用的是string類的toCharArray方法
3.由于string類也是采用Unicode字符集,所以我們進行錯位操作時只需讀取一個字符,然后與數(shù)字3相加,再轉(zhuǎn)換為char類型,就實現(xiàn)了錯3位加密操作,解密則減3.
4.在加密操作中,如果加密的是字母表最后三個,則必須實現(xiàn)循環(huán)操作,即X加密后是A,Y加密后是B,Z加密后是C,實現(xiàn)這個就要用到ASCII碼,當讀到XYZ時,加密則是減去23后轉(zhuǎn)換為char類型,當然,解密時讀到ABC加上23即可
(2)程序流程圖:
實現(xiàn)過程
我們定義個key=13,此時我們對字符串Thisismysecretmessage進行加密
importpyperclip
message='Thisismysecretmessage'#保存加密或解密的字符串
key=13#保存加密密鑰的整數(shù)
mode='encrypt'
LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
translated=''
message=message.upper()
forsymbolinmessage:
ifsymbolinLETTERS:
num=LETTERS.find(symbol)
ifmode=='encrypt':
num=num+key
elifmode=='decrypt':
num=num-key
ifnum=len(LETTERS):
num=num-len(LETTERS)
elifnum0:
num=num+len(LETTERS)
translated=translated+LETTERS[num]
else:
translated=translated+symbol
print(translated)
pyperclip.copy(translated)
打印結(jié)果如下:
GUVFVFZLFRPERGZRFFNTR
[Finishedin0.8s]
我們來對上面這部分代碼進行分析
我們可以看到,第一行調(diào)用了一個pyperclip的模塊,我們需要下載這個模塊,很簡單,安裝一個pip,直接輸入pipinstallpyperclip即可完成安裝
message='Thisismysecretmessage'#保存加密或解密的字符串
key=13#保存加密密鑰的整數(shù)
message指定了用來保存加解密的字符串
而key用來保存加密密鑰
message=message.upper()
調(diào)用了一個upper函數(shù),將加解密字符串全部變成大寫字母
后面的實現(xiàn)過程很簡單,判斷mode值是否為encrpy,然后對字符進行移位
破解原理及實現(xiàn)
我們將加密后的字符串進行破解,實現(xiàn)原理如下:
importpyperclip
message='GUVFVFZLFRPERGZRFFNTR'
LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
forkeyinrange(len(LETTERS)):
translated=''
forsymbolinmessage:
ifsymbolinLETTERS:
num=LETTERS.find(symbol)
num=num-key
ifnum0:
num=num+len(LETTERS)
translated=translated+LETTERS[num]
else:
translated=translated+symbol
print('Key#%s:%s'%(key,translated))
打印結(jié)果如下:
Key#0:GUVFVFZLFRPERGZRFFNTR
Key#1:FTUEUEYKEQODQFYQEEMSQ
Key#2:ESTDTDXJDPNCPEXPDDLRP
Key#3:DRSCSCWICOMBODWOCCKQO
Key#4:CQRBRBVHBNLANCVNBBJPN
Key#5:BPQAQAUGAMKZMBUMAAIOM
Key#6:AOPZPZTFZLJYLATLZZHNL
Key#7:ZNOYOYSEYKIXKZSKYYGMK
Key#8:YMNXNXRDXJHWJYRJXXFLJ
Key#9:XLMWMWQCWIGVIXQIWWEKI
Key#10:WKLVLVPBVHFUHWPHVVDJH
Key#11:VJKUKUOAUGETGVOGUUCIG
Key#12:UIJTJTNZTFDSFUNFTTBHF
Key#13:THISISMYSECRETMESSAGE
Key#14:SGHRHRLXRDBQDSLDRRZFD
Key#15:RFGQGQKWQCAPCRKCQQYEC
Key#16:QEFPFPJVPBZOBQJBPPXDB
Key#17:PDEOEOIUOAYNAPIAOOWCA
Key#18:OCDNDNHTNZXMZOHZNNVBZ
Key#19:NBCMCMGSMYWLYNGYMMUAY
Key#20:MABLBLFRLXVKXMFXLLTZX
Key#21:LZAKAKEQKWUJWLEWKKSYW
Key#22:KYZ
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年事業(yè)單位工勤技能-廣西-廣西機械冷加工三級(高級工)歷年參考題庫含答案解析(5套)
- 2025年工業(yè)信息安全行業(yè)當前市場規(guī)模及未來五到十年發(fā)展趨勢報告
- 2025年《醫(yī)療器械經(jīng)營監(jiān)督管理辦法》培訓知識題庫及答案
- 2025年度信息安全技術(shù)研究與項目合作開發(fā)合同
- 2025年度重型壓路機租賃與智能道路照明設(shè)施安裝合同
- 2025年事業(yè)單位工勤技能-廣東-廣東檢驗員三級(高級工)歷年參考題庫含答案解析(5套)
- 2025年國家級公共衛(wèi)生基礎(chǔ)設(shè)施建設(shè)項目咨詢合同
- 2025年倉儲物流租賃居間合同標準化流程手冊
- 2025年事業(yè)單位工勤技能-廣東-廣東收銀員一級(高級技師)歷年參考題庫含答案解析(5套)
- 2025年高端藝術(shù)品跨境運輸及全程保險服務(wù)合同
- 2025年江蘇省安全員-C證(專職安全員)考試題庫
- 與國有資產(chǎn)監(jiān)督管理委員會的合作協(xié)議書7篇
- 金氏五行升降中醫(yī)方集
- 炭黑生產(chǎn)工(初級)職業(yè)技能鑒定理論備考試題(附答案)
- T-SHAEPI 010-2024 污水處理廠溫室氣體排放監(jiān)測技術(shù)標準
- 三農(nóng)村集體經(jīng)濟組織內(nèi)部審計操作手冊
- 植物基食品生產(chǎn)設(shè)備創(chuàng)新-深度研究
- 山東省青島市市南區(qū)2024-2025學年七年級上學期期末語文試題(含答案)
- 成品庫管理匯報
- 2025《拋丸機安全操作規(guī)程》符合安全標準化要求
- 混凝土攪拌站實驗室質(zhì)量管理手冊(正本)
評論
0/150
提交評論