一.凯撒密码加密代码思路
基本思路:
- 设置明文 和 位移步长(秘钥)
- 将明文转成小写,准备 明文字节切片 与 密文切片
- 循环将每个明文字符 按照 位移步长 做位移,存入密文切片
- 返回密文
- 导入包
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)
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- 密码输入框实现流程简述
- RxJS 实现摩斯密码(内附脑图)
- Kotlin–›自定义实现支付密码数字键盘
- MySQL--Ansible推送密钥实现免密码登录
- 挖洞经验 | 篡改密码重置的加密参数实现账号劫持
- 中科院专家:密码实现与应用的安全挑战
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
如何不在网上虚度人生
[美] 肯尼思·戈德史密斯 / 刘畅 / 北京联合出版公司 / 2017-9 / 39.80元
我们平时上网多大程度上是浪费时间,多大程度是在学习、关心社会、激发创造力?我们真能彻底断网,逃离社交网络吗? 手机把都市人变成一群电子僵尸,是福是祸? 浏览记录就是我们将来的回忆录吗?文件归档属于一种现代民间艺术? 不自拍、P图、发朋友圈,我还是我吗? 美国知名概念艺术家戈德史密斯认为:上网绝不是浪费时间,而是一种创造性的活动。在本书中他以跨学科角度、散文式语言进行论证,涉及大众传播学、计算......一起来看看 《如何不在网上虚度人生》 这本书的介绍吧!