在密碼學(xué)中,愷撒密碼(或稱愷撒加密、愷撒變換)是一種最簡單且最廣為人知的加密技術(shù)。它是一種替換加密的技術(shù),明文中的所有字母都在字母表上向後(或向前)按照一個固定數(shù)目進(jìn)行偏移後被替換成密文。例如,當(dāng)偏移量是3的時候,所有的字母A將被替換成D,B變成E,以此類推。這個加密方法是以愷撒的名字命名的,當(dāng)年愷撒曾用此方法與其將軍們進(jìn)行聯(lián)系。
例如,當(dāng)偏移量是左移3的時候(解密時的密鑰就是3):
代碼如下:
明文字母表:ABCDEFGHIJKLMNOPQRSTUVWXYZ
密文字母表:DEFGHIJKLMNOPQRSTUVWXYZABC
以上都是廢話啦,最近在教一個小朋友VBS,給她出了一道題,讓她實(shí)現(xiàn)凱撒密碼算法,不過貌似有點(diǎn)難了。Google了一下凱撒密碼,出來的基本都是C和Java的實(shí)現(xiàn),還是我自己寫吧。
代碼如下:
Function Caesar(str,offset)
Dim length,char,i
Caesar = ""
length = Len(str)
For i = 1 To length
char = Mid(str,i,1)
If char >= "A" And char <= "Z" Then
char = Asc("A") + (Asc(char) - Asc("A") + offset) Mod 26
Caesar = Caesar & Chr(char)
ElseIf char >= "a" And char <= "z" Then
char = Asc("a") + (Asc(char) - Asc("a") + offset) Mod 26
Caesar = Caesar & Chr(char)
Else
Caesar = Caesar & char
End If
Next
End Function
WScript.Echo Caesar("ABCDEFGHIJKLMNOPQRSTUVWXYZ",3)
WordPress的默認(rèn)主題真不好使,代碼竟然溢出了,將就著看吧,或者給我推薦一個好看點(diǎn)的主題也行。