幾天前壹次和朋友聊天談到了加密聊天,於是想到了凱撒密碼,隨之就是想用自己的壹點爛技術寫點好玩的:
下面是成品說明
本程序可以將用戶輸入的內容通過 非固定的凱撒密碼字典 進行加/解密,是壹種好用加密的加密聊天方式。
Caesar cipher,發明者Caesar(凱撒),羅馬人。
根據蘇維托尼烏斯的記載,愷撒曾用此方法對重要的軍事信息進行加密:
如果需要保密,信中便用暗號,也即是改變字母順序,使局外人無法組成壹個單詞。如果想要讀懂和理解它們的意思,得用第4個字母置換第壹個字母,即以D代A,余此類推。
同樣,奧古斯都也使用過類似方式,只不過他是把字母向右移動壹位,而且末尾不折回。每當他用密語寫作時,他都用B代表A,C代表B,其余的字母也依同樣的規則;他用A代表Z。
另外,有證據表明,愷撒曾經使用過更為復雜的密碼系統:文法學家普羅布斯曾經寫過壹份獨具創新的手稿,研究愷撒書信中包含有秘密信息的字母。
已經無法弄清愷撒密碼在當時有多大的效果,但是有理由相信它是安全的。因為愷撒大部分敵人都是目不識丁的,而其余的則可能將這些消息當作是某個未知的外語。即使有某個敵人獲取了愷撒的加密信息,根據現有的記載,當時也沒有任何技術能夠解決這壹最基本、最簡單的替換密碼。現存最早的破解方法記載在公元9世紀阿拉伯的阿爾·肯迪的有關發現頻率分析的著作中。
這是壹種最簡單且最廣為人知的加密技術。它是壹種替換加密的技術,明文中的所有字母都在字母表上向後(或向前)按照壹個固定數目進行偏移後被替換成密文。例如,當偏移量是3的時候,所有的字母A將被替換成D,B變成E,以此類推。這個加密方法是以羅馬***和時期凱撒的名字命名的,當年凱撒曾用此方法與其將軍們進行聯系。
進入程序後,會有像下面這樣的提示:
隨便輸入壹段英文(此程序僅支持英文和數字,原因看原理):例如 Fuck you
然後回車:
我們在這輸入的是可看的原文,所以我們要加密,輸入1,回車:
我們以位移+3(這是當年的默認值,輸入其他值可以為負,但是必須加負號,正數的正號加不加無所謂)為例,輸入並回車:
程序裏面用了循環,所以輸出完後會自動進行下壹次,這適合正在加密聊天的折騰者。
同樣,我們把加密好的文本復制完後重新輸入,選擇2進行反加密(解密),位移了多少仍然填3:
這樣解密就成功了,是不是真的很適合愛折騰的妳?趕緊發給妳的朋友,約定壹個固定的位移數(加密密鑰)進行愉快的無限制聊天吧!
存放主程序及圖標文件
英文版主程序(在en-ww文件夾內)
程序圖標,透明底的
中文版主程序
日誌文件,主要通過自編模塊 keeplog 生成,內容為“日期(Y/M/D)+時間(h/m/s)+加密密鑰+輸入/輸出內容+分割線”