1. 凱撒密碼為一種替換密碼,此題的加密過程為先進行base64編碼,再進行移
在密碼學中,愷撒密碼(或稱愷撒加密、愷撒變換、變換加密)是一種最簡單且最廣為人知的加密技術。它是一種替換加密的技術,明文中的所有字母都在字母表上向後(或向前)按照一個固定數目進行偏移後被替換成密文。
愷撒密碼的加密、解密方法還能夠通過同餘的數學方法進行計算。首先將字母用數字代替,A=0,B=1,...,Z=25。此時偏移量為n的加密方法即為: E(x) = (x + n) mod 26.
解密就是:
D(x) = (x - n) mod 26.
顯而易見,一旦確定了某兩個字母的對應關系(即n的值),這種移位密碼很容易被破解。
因此,為了使密碼有更高的安全性,單字母替換密碼就出現了。
明碼表: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
密碼表:T U V W X Y Z A B C D E F G H I J K L M N O P Q R S
但是這種加密方式依然可以破解,根據字母使用頻度表,分析密文中的字母頻率,將其對照即可破解。
不僅如此,凱撒加密對加密數據也是有要求的,一般情況下,它只支持對基本的英文字母進行加密,如果對中文等亞太地區的文字進行加密,結果可想而知,你的隱私將毫無保留的出現在眾人面前。有人說,我們可以擴展這個演算法,使它支持所有的文字,這么做是可行的,如果採用同餘式的方式實現,代碼幾乎不怎麼需要改動,只要字元集本身是Unicode就可以了。但是這種加密的安全性很難滿足應用的要求。如果採用單字母替換的方式,程序將需要構建兩個巨大的字元數組去保存他們的映射關系,而且擴展性也不好,當然也是不可行的。這樣看來,凱撒加密豈不是一無是處了,其實對於一般的應用,凱撒加密還是足以應付的,只要我們對它稍作改進。