900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > php实现凯撒密码加密算法 Golang 实现凯撒密码

php实现凯撒密码加密算法 Golang 实现凯撒密码

时间:2020-02-25 16:50:55

相关推荐

php实现凯撒密码加密算法 Golang 实现凯撒密码

一.凯撒密码加密代码思路

基本思路:

设置明文 和 位移步长(秘钥)

将明文转成小写,准备 明文字节切片 与 密文切片

循环将每个明文字符 按照 位移步长 做位移,存入密文切片

返回密文

导入包

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)

}

有疑问加站长微信联系(非本文作者)

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。