精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Go 語言入門很簡單:Go 實現凱撒密碼

安全 數據安全
凱撒密碼是一種替換加密技術,明文中的所有字母都在字母表上向后(或向前)按照一個固定數目進行偏移后被替換成密文。

在文本上使用凱撒密碼來移動字符。調用 strings.Map 方法。

1.凱撒密碼加密

凱撒密碼(英語:Caesar cipher),或稱凱撒加密、凱撒變換、變換加密,是一種最簡單且最廣為人知的加密技術。

凱撒密碼是一種替換加密技術,明文中的所有字母都在字母表上向后(或向前)按照一個固定數目進行偏移后被替換成密文。例如,當偏移量是 3 的時候,所有的字母 A 將被替換成 D;B 變成E,以此類推。這個加密方法是以羅馬共和時期凱撒的名字命名的,據稱當年凱撒曾用此方法與其將軍們進行聯系。

  • 明文字母表:ABCDEFGHIJKLMNOPQRSTUVWXYZ
  • 密文字母表:DEFGHIJKLMNOPQRSTUVWXYZABC

圖片

設計思想

  • 設置明文和移動步長(秘文)
  • 將清晰的文本轉換為小寫,準備清晰的文本字節切片和密文切片
  • 每個明文字符根據位移的步長旋轉并存儲在密文片中
  • 返回密文

圖片

2.Go實現

凱撒密碼一般以密碼形式交付。比如這串代碼“exxegoexsrgi”是密碼。

通過移動字母,我們可以對消息進行編碼。這阻止了隨意的窺探。在 Go 中,我們可以使用 strings.Map 方法來實現這一點。

2.1 導入包

import (
"fmt"
"strings" // Include string operation related methods
)

2.2 編寫 caesar 方法

然后讓我們來編寫 caesarEn() 凱撒密碼加密方法。這會接收一個字符串并返回一個修改過的字符串。

它會移動字符,然后將字符移動到有效范圍。

// 凱撒密碼加密
func caesarEn(strRaw string, step byte) string {
//1. 將文本轉為小寫
str_raw := strings.ToLower(strRaw)
//2. 定義步長
step_move := step
//3. 將字符串轉換為明文字符切片
str_slice_src := []byte(str_raw)
fmt.Println("Clear text character slice:", str_slice_src)

//4. 創建一個密文字符切片
str_slice_dst := str_slice_src

//5.循環處理文本切片
for i := 0; i < len(str_slice_src); i++ {
//6.如果當前周期的明文特征在位移范圍內,請直接添加位移步驟以保存密文字符切片
if str_slice_src[i] < 123-step_move {
str_slice_dst[i] = str_slice_src[i] + step_move
} else { //7. 如果明文字符超出范圍,則加上位移后的步長減去 26
str_slice_dst[i] = str_slice_src[i] + step_move - 26
}
}
//8. 輸出結果
fmt.Println("The encryption result is:", step_move, str_slice_dst, string(str_slice_dst))
return string(str_slice_dst)
}

3.凱撒密碼解密

思想:

  • 設置密文和位移步驟
  • 準備密文字符切片和明文字符切片
  • 每個密文的字符根據位移步長旋轉,并存儲在明文切片中
  • 返回明文

圖片

Go 凱撒解密代碼:

//2. 凱撒密碼解密
func caesarDe(strCipher string, step byte) string {
//1. 將文本轉為小寫
str_cipher := strings.ToLower(strCipher)
//2. 替代步長
step_move := step
//3. 將字符串轉換為明文字符切片
str_slice_src := []byte(str_cipher)
fmt.Println("Ciphertext character slice:", str_slice_src)

//4. 創建一個密文字符切片
str_slice_dst := str_slice_src

//5. 循環處理字符文本切片
for i := 0; i < len(str_slice_src); i++ {
//6. 如果當前周期的明文特征在位移范圍內,請直接添加位移步驟以保存密文字符切片
if str_slice_src[i] >= 97+step_move {
str_slice_dst[i] = str_slice_src[i] - step_move
} else { //7. 如果明文字符超出范圍,則加上 26 減去位移后的步長
str_slice_dst[i] = str_slice_src[i] + 26 - step_move
}
}
//8. Output results
fmt.Println("The decryption result is:", step_move, str_slice_dst, string(str_slice_dst))
return string(str_slice_dst)
}

4.其他實現


package main

import (
"errors"
"fmt"
"reflect"
"regexp"
)


var TBL = []rune("abcdefghijklmnopqrstuvwxyz")


var CLUES = []string{"this", "the", "that"}


var (

ErrLength = errors.New("invalid length")

ErrChar = errors.New("invalid char")

ErrNoClue = errors.New("no clue word")

ErrShift = errors.New("invalid shift value")
)




func Encrypt(in string, sh int) (enc string, err error) {
err = assert(in)
if sh < 0 {
err = ErrShift
}
if err != nil {
return
}
enc = shift(in, sh)
return
}



func Decrypt(in string) (dec string, sh int, err error) {

err = assert(in)
if err != nil {
return
}
var hit bool = false

subin := subStr(in)

for i := 0; i < len(CLUES); i++ {

subclue := subStr(CLUES[i])

for j := 0; j < len(subin)-len(subclue)+1; j++ {

if reflect.DeepEqual(subin[j:j+1], subclue[0:len(subclue)-1]) {
sh = subtract([]rune(in)[j], []rune(CLUES[i])[0])
hit = true
break
}
}
}

if !hit {
err = ErrNoClue
return
}

dec = shift(in, -sh)
return
}


func assert(in string) (err error) {
if regexp.MustCompile(`[^a-z\. \r\n]`).MatchString(in) {
err = ErrChar
} else if len(in) > 80 {
err = ErrLength
}
return
}


func shift(in string, sh int) (out string) {
for _, v := range in {

if v == '.' || v == ' ' || v == '\r' || v == '\n' {
out += string(v)
continue
}

i := indexOf(TBL, v)

len := len(TBL)
var ii int = (i + sh) % len
if ii < 0 {
ii += len
}
if ii > len {
ii -= len
}
out += string(TBL[ii])
}
return
}


func subtract(left rune, right rune) (out int) {
l := indexOf(TBL, left)
r := indexOf(TBL, right)
out = l - r
if out < 0 {
out += len(TBL)
}
return
}


func subStr(in string) []int {
subin := make([]int, 0, 79)
for i := range in {
if i > len(in)-2 {
break
}
subin = append(subin, subtract([]rune(in)[i], []rune(in)[i+1]))
}
// return
return subin
}


func indexOf(target []rune, searchChar rune) int {
for i, v := range target {
if v == searchChar {
return i
}
}
return -1
}

func main() {
in := "xlmw mw xli tmgxyvi xlex m xsso mr xli xvmt."
fmt.Printf("in : '%s'\n", in)
out, sh, err := Decrypt(in)
fmt.Printf("out: '%s'\n", out)
fmt.Printf("sh : %d\n", sh)
fmt.Printf("err: %v\n", err)
}

5.測試

package main

import (
"fmt"
"strings"
)

func caesar(r rune, shift int) rune {
// Shift character by specified number of places.
// ... If beyond range, shift backward or forward.
s := int(r) + shift
if s > 'z' {
return rune(s - 26)
} else if s < 'a' {
return rune(s + 26)
}
return rune(s)
}

func main() {
value := "test"
fmt.Println(value)

// Test the caesar method in a func argument to strings.Map.
value2 := strings.Map(func(r rune) rune {
return caesar(r, 18)
}, value)
value3 := strings.Map(func(r rune) rune {
return caesar(r, -18)
}, value2)
fmt.Println(value2, value3)

value4 := strings.Map(func(r rune) rune {
return caesar(r, 1)
}, value)
value5 := strings.Map(func(r rune) rune {
return caesar(r, -1)
}, value4)
fmt.Println(value4, value5)

value = "exxegoexsrgi"
result := strings.Map(func(r rune) rune {
return caesar(r, -4)
}, value)
fmt.Println(value, result)
}

運行該程序:

test
lwkl test
uftu test
exxegoexsrgi attackatonce

6.總結

本文簡單介紹了一個有意思的密碼學中的凱撒密碼,該算法是一種替換加密技術,并在 Go 代碼中實現了該算法的加密和解密過程。

責任編輯:武曉燕 來源: 宇宙之一粟
相關推薦

2020-08-12 08:56:30

代碼凱撒密碼函數

2021-10-28 19:35:48

Go 控制超時

2024-07-11 08:42:57

2024-11-01 12:57:03

2019-02-11 08:32:22

編程語言Go

2018-03-12 22:13:46

GO語言編程軟件

2020-03-17 10:24:12

Go語言停止寫障礙

2023-06-10 23:01:41

GrpcProtobuf數據

2023-11-25 09:31:20

Go事件管理器

2025-08-04 01:22:00

Go 語言微服務Kratos

2022-05-09 10:36:05

PythonPyScript開發者

2023-05-08 07:55:05

快速排序Go 語言

2024-08-29 13:23:04

WindowsGo語言

2024-02-06 17:57:06

Go語言任務

2017-11-16 15:25:54

Go語言算法代碼

2022-11-01 18:29:25

Go語言排序算法

2022-03-13 23:51:39

Web項目Go

2010-05-19 16:45:26

MySQL自動啟動

2012-10-08 09:25:59

GoGo語言開發語言

2015-12-21 14:56:12

Go語言Http網絡協議
點贊
收藏

51CTO技術棧公眾號

国产欧美日韩视频在线观看| 日产午夜精品一线二线三线| 夜色激情一区二区| 国产精品乱码| 高潮毛片又色又爽免费 | 韩国精品一区二区三区六区色诱| 久久久精品免费看| 久久社区一区| 亚洲电影免费观看| 一区二区三区 欧美| 18视频在线观看网站| 99精品国产91久久久久久| 国产精品中文久久久久久久| www青青草原| 九九热爱视频精品视频| 91精品国产黑色紧身裤美女| 国产69精品久久久久999小说| 国产在线一二三| 国产一区二区福利| 国产91|九色| 在线看的片片片免费| 欧美日韩爱爱| 精品久久久久久无| 九色porny自拍| 午夜伦理福利在线| 亚洲丝袜制服诱惑| 日韩亚洲不卡在线| 无码国精品一区二区免费蜜桃| 久久精品av麻豆的观看方式| 欧美在线视频一区二区| 免费网站看av| 久久久久久久久丰满| 亚洲美女精品久久| 性高潮免费视频| 国产高清视频网站| 69av视频在线| 日韩精品永久网址| 日韩禁在线播放| 91香蕉视频免费看| 福利一区二区三区视频在线观看 | 亚洲精品一区中文| 日本黄色大片在线观看| 日韩美香港a一级毛片| 色诱视频网站一区| 九一国产精品视频| 男人天堂亚洲天堂 | 国产精品久久久亚洲| 欧美不卡视频在线观看| 狠狠入ady亚洲精品经典电影| 日韩在线观看成人| 国产白丝一区二区三区| 欧美一区二区麻豆红桃视频| 亚洲美女性视频| 国产a级黄色片| 97超碰成人| 精品日韩在线一区| 一级日本黄色片| 欧美一级大片在线视频| 91精品国产91热久久久做人人| 亚洲人视频在线| 日韩精品一页| 日韩欧美国产综合一区| 欧美污在线观看| 66精品视频在线观看| 日韩一区二区三区免费看| 1314成人网| 97青娱国产盛宴精品视频| 亚洲精品在线网站| 亚洲蜜桃精久久久久久久久久久久| jizz久久精品永久免费| 精品国产成人系列| av网页在线观看| 中文字幕亚洲影视| 一夜七次郎国产精品亚洲| 色噜噜噜噜噜噜| 婷婷综合社区| 欧美国产日韩一区二区| 国产成人在线免费观看视频| 免费国产在线观看| 你懂的视频欧美| 国产一区二区三区久久精品| 99国产精品免费| 一本一道久久a久久精品蜜桃| 久久综合免费视频| 日本少妇bbwbbw精品| 免费一区视频| 国产精品久久久久aaaa九色| 国产又粗又大又黄| 粉嫩高潮美女一区二区三区| 久久综合狠狠综合久久综青草| 狠狠狠综合7777久夜色撩人| 成人欧美一区二区三区黑人麻豆| 99亚洲国产精品| 爱搞国产精品| 欧美影院一区二区三区| 老女人性生活视频| 亚洲人成网77777色在线播放| 在线看国产精品| 青青草国产在线观看| 亚洲视频1区| 国产精品欧美日韩久久| 精品免费久久久| 久久久久久久免费视频了| 三级网在线观看| 国产va在线视频| 在线成人av影院| 91精品国产自产| 91精品国产91久久综合| 欧美诱惑福利视频| 999免费视频| 国产日产欧美一区二区三区| 免费极品av一视觉盛宴| 日本欧美韩国| 亚洲第一二三四五区| 我要看一级黄色录像| 久久精品男女| 风间由美久久久| 麻豆91在线| 一本到一区二区三区| 妖精视频在线观看| 日本高清免费电影一区| 91精品国产高清久久久久久| 国产精品怡红院| 国产色一区二区| 日韩欧美亚洲天堂| 日韩中文字幕| 北条麻妃在线一区二区| 99热在线播放| 在线观看xxxx| 26uuu色噜噜精品一区二区| 青青草综合视频| 69堂精品视频在线播放| 亚洲精品视频久久| 日本少妇裸体做爰| 国产成人在线视频网站| 日本成人性视频| 欧美成人aaa| 亚洲石原莉奈一区二区在线观看| 日韩乱码一区二区| 成人涩涩免费视频| 乱熟女高潮一区二区在线| 久久久久久一区二区三区四区别墅| 亚洲精品一区二三区不卡| 香蕉免费毛片视频| 成人免费视频一区| 免费在线观看视频a| 一区二区三区视频播放| 欧美精品在线看| 国产日韩免费视频| 亚洲视频在线一区二区| 亚洲欧美日韩三级| 国产精品毛片久久| 成人免费福利在线| 国产黄色在线网站| 欧美一区二区播放| 欧美爱爱小视频| 国产激情91久久精品导航| 亚洲午夜在线观看| 97精品资源在线观看| 久久精品国产v日韩v亚洲| 91精品国自产| 亚洲欧美aⅴ...| 深夜视频在线观看| 伊人蜜桃色噜噜激情综合| 国产一区二区三区四区hd| yellow在线观看网址| 亚洲精品天天看| 五月婷婷六月婷婷| 国产精品久久久久一区二区三区| gai在线观看免费高清| 欧美成人精品| 国产精品久久久久久久小唯西川| 超碰91在线观看| 亚洲人午夜精品| 国产精品露脸视频| 亚洲人成亚洲人成在线观看图片| 永久免费看片在线观看| 亚洲激情网站| 日韩理论片在线观看| 成人免费91| 欧美日韩国产高清| 91亚色免费| 日本不卡免费高清视频在线| 亚洲午夜小视频| 国产精品视频在线观看免费| 一区二区三区不卡视频在线观看 | 天堂av在线中文| 福利电影一区| 国产精品igao视频| 八戒八戒神马在线电影| 亚洲韩国青草视频| 色婷婷久久综合中文久久蜜桃av| 亚洲欧美在线另类| 欧美双性人妖o0| 日本欧美大码aⅴ在线播放| 在线丝袜欧美日韩制服| 风间由美中文字幕在线看视频国产欧美 | 欧美破处大片在线视频| 精品一区二区国产| 激情欧美一区二区三区黑长吊| 欧美福利视频在线| 成人欧美一区| 亚洲国产精品99久久| 日韩乱码一区二区三区| 夜夜嗨av一区二区三区中文字幕 | av网站在线观看免费| 欧美色xxxx| 永久看片925tv| 久久精品一区二区| jjzz黄色片| 另类成人小视频在线| 久久视频这里有精品| 99久久激情| 欧美xxxx黑人又粗又长密月| 美女国产精品久久久| 日本精品免费观看| heyzo高清在线| 久久精品影视伊人网| 国产网站在线播放| 亚洲精品aⅴ中文字幕乱码| 91激情在线观看| 在线观看日韩电影| 日韩经典在线观看| 亚洲精品中文字幕乱码三区| 久操视频在线观看免费| 95精品视频在线| 国产精品成人免费一区久久羞羞| 麻豆国产精品官网| 成人在线激情网| 99在线精品免费视频九九视| 无码人妻精品一区二区蜜桃百度| 大胆日韩av| 日韩欧美精品在线不卡| 五月激激激综合网色播| 国产女人水真多18毛片18精品| 999精品嫩草久久久久久99| 国产精品h在线观看| 国产精品高清乱码在线观看| 97人人爽人人喊人人模波多| 久草在线资源站资源站| 久久亚洲欧美日韩精品专区 | 成人黄色免费视频| 777奇米成人网| 国产精品视频a| 欧美日韩国产另类一区| 日本三级一区二区三区| 在线观看亚洲精品| 中文在线免费看视频| 在线精品国精品国产尤物884a| 香蕉影院在线观看| 日韩欧美成人网| 一区二区三区在线观看av| 欧美体内谢she精2性欧美| 国产又黄又爽又色| 欧美日韩综合视频网址| 销魂美女一区二区| 欧美在线免费观看亚洲| 亚洲av无码乱码国产精品fc2| 91黄色免费版| 在线观看视频二区| 欧美一区二区黄色| 人妻中文字幕一区| 日韩精品福利网站| 风间由美一区| 精品国产自在精品国产浪潮| 欧美18hd| 精品中文字幕乱| 国产美女情趣调教h一区二区| 国外成人性视频| 午夜不卡影院| 国产精品吴梦梦| 视频二区欧美毛片免费观看| 国产精品福利视频| 欧美人妖在线| 中文字幕一区二区三区有限公司| 欧美日韩p片| 北条麻妃69av| 人禽交欧美网站| 特黄特色免费视频| 久久久久久久久久久电影| 国产大屁股喷水视频在线观看| 又紧又大又爽精品一区二区| 日本熟妇毛耸耸xxxxxx| 91久久久免费一区二区| 国产婷婷一区二区三区久久| 日韩不卡中文字幕| 日本视频不卡| 国内精品一区二区三区四区| 欧美一级大片| 4444kk亚洲人成电影在线| 日韩欧美四区| 在线观看精品视频| 91久久中文| 天天综合天天添夜夜添狠狠添| 国产91精品精华液一区二区三区 | 亚洲春色h网| 一区二区三区日韩视频| 99热精品在线| 在线观看日本一区二区| 成人av免费网站| 一级免费黄色录像| 欧美日韩国产在线| 国产伦一区二区| 亚洲欧美在线一区二区| gogo在线观看| 国产a级全部精品| silk一区二区三区精品视频| 亚洲成人网上| 99视频在线精品国自产拍免费观看| www.99r| 国产亚洲综合在线| xxxx 国产| 9191成人精品久久| 成人在线观看免费| 欧美中文字幕在线视频| 日韩中文字幕一区二区高清99| 日韩在线第一区| 中文一区二区| 性高潮免费视频| 日韩理论片在线| 波多野结衣网站| 亚洲精品国产品国语在线| 天堂av最新在线| 成人xxxxx| 青青一区二区三区| 蜜臀久久99精品久久久酒店新书| 不卡在线观看av| 成人观看免费视频| 在线成人av网站| 久久bbxx| 国产日韩av在线| 国产午夜一区| 国产a视频免费观看| 91麻豆国产香蕉久久精品| 久久草视频在线| 欧美精品一区二区久久婷婷| 性网站在线观看| 91在线精品观看| 亚洲一级淫片| 涩涩网站在线看| 亚洲少妇最新在线视频| 在线视频 中文字幕| 中文字幕日韩精品在线| 99精品在免费线偷拍| 午夜欧美一区二区三区免费观看| 性欧美xxxx大乳国产app| 久久亚洲AV成人无码国产野外| 欧美日韩精品二区| 少妇精品视频一区二区| 91a在线视频| 丝袜连裤袜欧美激情日韩| 精品国产一二三四区| 91色视频在线| 久草视频一区二区| 国产亚洲一级高清| 成人精品国产亚洲| 一区二区高清视频| 国产在线看一区| 欧美三级 欧美一级| 亚洲国产欧美一区二区三区久久| h片在线观看视频免费| 久久波多野结衣| 久久九九电影| 国产成人精品视频免费| 欧美一区二区三区系列电影| 午夜av在线播放| 国产一区二区三区av在线| 老司机一区二区三区| 人成免费在线视频| 日韩一区二区在线观看| 黄色美女视频在线观看| 精品视频一区二区| 青青草国产成人av片免费| 99久久精品久久亚洲精品| 日韩美女视频一区二区在线观看| 啊啊啊久久久| 色综合久久久久久久久五月| 精久久久久久久久久久| 欧美日韩亚洲国产另类| 亚洲欧洲第一视频| 91成人短视频在线观看| 丁香六月激情婷婷| 久久精品这里都是精品| 国产女人高潮时对白| 韩日精品中文字幕| 成人在线免费观看视频| 中文字幕在线国产| 欧美专区亚洲专区| 国产精品一品| 色一情一乱一伦一区二区三区 | 99se婷婷在线视频观看| 中文亚洲字幕| 亚洲欧美精品aaaaaa片| 精品偷拍各种wc美女嘘嘘| 欧美激情三区| 日韩在线视频在线观看| 亚洲视频中文字幕| 可以在线观看的黄色| 不卡视频一区二区三区| 日本中文字幕一区二区视频|