凱撒密碼的原理以及實現

2021-08-25 01:53:30 字數 721 閱讀 8099

凱撒密碼是一種古老的加密演算法。

密碼的使用最早可以追溯到古羅馬時期,《高盧戰記》有描述愷撒曾經使用密碼來傳遞資訊,即所謂的「愷撒密碼」,它是一種替代密碼,通過將字母按順序推後起3位起到加密作用,如將字母a換作字母d,將字母b換作字母e。因據說愷撒是率先使用加密函的古代將領之一,因此這種加密方法被稱為愷撒密碼。這是一種簡單的加密方法,這種密碼的密度是很低的,只需簡單地統計字頻就可以破譯。 現今又叫「移位密碼」,只不過移動的為數不一定是3位而已。

密碼術可以大致別分為兩種,即易位和替換,當然也有兩者結合的更複雜的方法。在易位中字母不變,位置改變;替換中字母改變,位置不變。

將替換密碼用於軍事用途的第乙個檔案記載是愷撒著的《高盧記》。愷撒描述了他如何將密信送到正處在被圍困、瀕臨投降的西塞羅。其中羅馬字母被替換成希臘字母使得敵人根本無法看懂資訊。

蘇托尼厄斯在公元二世紀寫的《愷撒傳》中對愷撒用過的其中一種替換密碼作了詳細的描寫。愷撒只是簡單地把資訊中的每乙個字母用字母表中的該字母後的第三個字母代替。這種密碼替換通常叫做愷撒移位密碼,或簡單的說,愷撒密碼。

下面是自己寫的乙個例程:

/******************凱撒加密演算法********************/ #include #include using namespace std; int n = 3; //向後移動的位數 string caesarcipher(string str) return ciphertext; } int main()

凱撒密碼的原理以及實現

凱撒密碼是一種古老的加密演算法。密碼的使用最早可以追溯到古羅馬時期,高盧戰記 有描述愷撒曾經使用密碼來傳遞資訊,即所謂的 愷撒密碼 它是一種替代密碼,通過將字母按順序推後起3位起到加密作用,如將字母a換作字母d,將字母b換作字母e。因據說愷撒是率先使用加密函的古代將領之一,因此這種加密方法被稱為愷撒...

Golang 實現凱撒密碼

基本思路 設定明文 和 位移步長 秘鑰 將明文轉成小寫,準備 明文位元組切片 與 密文切片 迴圈將每個明文本元 按照 位移步長 做位移,存入密文切片 返回密文 strings 包含字串操作相關方法 一 凱撒密碼加密 func caesaren strraw string,step byte stri...

Golang 實現凱撒密碼

基本思路 設定明文 和 位移步長 秘鑰 將明文轉成小寫,準備 明文位元組切片 與 密文切片 迴圈將每個明文本元 按照 位移步長 做位移,存入密文切片 返回密文 strings 包含字串操作相關方法 一 凱撒密碼加密 func caesaren strraw string,step byte stri...