愷撒密碼(英語:caesar cipher),或稱愷撒加密、愷撒變換、變換加密,是一種最簡單且最廣為人知的加密技術。它是一種替換加密的技術,明文中的所有字母都在字母表上向後(或向前)按照乙個固定數目進行偏移後被替換成密文。例如,當偏移量是2的時候,所有的字母a將被替換成c,b變成d,以此類推。
因此,假如有個明文本串「hello」用這種方法加密的話,將變為密文: 「jgnnq」 。而如果要解密,則只要將字母向相反方向移動同樣位數即可。如密文「jgnnq」每個字母左移兩位 變為「hello」 。這裡,移動的位數「2」是加密和解密所用的金鑰。
使用公式定義,就是當秘鑰為n,其中乙個待加密字元ch,加密之後的字元為ch+n,當ch+n超過』z』時,回到』a』計數。
凱撒密碼的加密、解密方法還能夠通過同餘的數學方法進行計算。首先將字母用數字代替,a=0,b=1,…,z=25。此時偏移量為n的加密方法即為:
e n(
x)=(
x+n)
mod26
e_n(x)=(x+n)\qquad mod \ 26
en(x)
=(x+
n)mo
d26解密就是:
d n(
x)=(
x−n)
mod26
d_n(x)=(x-n) \qquad mod \ 26
dn(x)
=(x−
n)mo
d26根據偏移量的不同,還存在若干特定的愷撒密碼名稱:
這裡是使用凱撒密碼,對unity中的資源進行加密解密,所以使用了unity的資源載入類unitywebrequest
或www
,以及協程,但這並不影響對加密解密的理解。
///
/// 愷撒加密
///
///
private
ienumerator
encryptionab()
file.
writeallbytes
("d:\\fcj\\unity2018\\vuforiastudy\\buildassetbundle\\window\\myab_encryption.assetbundle"
, bytes);}
///
/// 愷撒解密
///
///
private
ienumerator
decryptab()
assetbundle ab = assetbundle.
loadfrommemory
(bytes)
;gameobject go = ab.
loadasset
("sphere"
)as gameobject;
//注意這裡是預製體名字
instantiate
(go, vector3.zero, quaternion.identity)
; ab.
unload
(false);
}
C 愷撒加密
題目內容 愷撒加密法加密規則是 將原來的小寫字母用字母表中其後面的第3個字母的大寫形式來替換,大寫字母按同樣規則用小寫字母替換,對於字母表中最後的三個字母,可將字母表看成是首未銜接的。如字母c就用f來替換,字母y用b來替換,而字母z用c代替。程式設計實現以下功能 輸入乙個字串,將其加密後輸出。程式執...
愷撒加密 MOOC C
題目內容 愷撒加密法加密規則是 將原來的小寫字母用字母表中其後面的第3個字母的大寫形式來替換,大寫字母按同樣規則用小寫字母替換,對於字母表中最後的三個字母,可將字母表看成是首未銜接的。如字母c就用f來替換,字母y用b來替換,而字母z用c代替。程式設計實現以下功能 輸入乙個字串,將其加密後輸出。程式執...
加密解密 愷撒加密 Javascript實現
愷撒加密 caesar cipher 是一種最簡單且最廣為人知的替換加密技術。明文中的所有字母都在字母表上向後 或向前 按照乙個固定數目進行偏移後被替換成密文。例如,當偏移量是3的時候,所有的字母a將被替換成d,b變成e,以此類推。當年愷撒曾用此方法與其將軍們進行聯絡。當偏移量是左移3的時候 解密時...