一.凯撒密码加密代码思路基本思路:设置明文 和 位移步长(秘钥)将明文转成小写,准备 明文字节切片 与 密文切片循环将每个明文字符 按照 位移步长 做位移,存入密文切片返回密文导入包import ( “fmt” “strings” // 包含字符串操作相关方法)凯撒密码加密代码//一、凯撒密码加密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(“明文字符切片:”, 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(“加密结果为:”, step_move, str_slice_dst, string(str_slice_dst)) return string(str_slice_dst)}二.凯撒密码解密代码思路基本思路:设置密文 和 位移步长准备 密文字符切片 与 明文字符切片循环将每个 密文字符 按照位移步长 做位移,存入明文切片返回明文凯撒密码解密代码//二、凯撒密码解密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(“密文字符切片:”, 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.输出结果 fmt.Println(“解密结果为:”, step_move, str_slice_dst, string(str_slice_dst)) return string(str_slice_dst)}