[Day20] Yew WASM 凯萨密码简介以及加密

不知道为啥总感觉进度堪忧,我是说准备工作
之前原本有一个能运行的东西现在运行不了
我翻 commit 纪录也没办法
真的头痛 ==
总之 今天明天会是最後 Yew WASM 的内容 owob


那麽今天其实有点算是复习篇
因为前面的东西基本上都讲过了
那至於题目也不会到太困难

先简介一下凯萨密码
凯撒密码

  • 最简单且最广为人知的加密技术。
  • 以替换技术来做加密,
  • 明文中的所有字母都在字母表上向後(或向前)按照一个固定数目进行偏移後被替换成密文。

好 OK 上面应该完整叙述了凯萨密码是什麽
不懂的可以去 Google 寻找详细
那至於怎麽实现呢
今天主要会讲加密跟解密的部份

pub fn decrypt(content: String, offset: i32) -> String {
    let mut result = String::new();

    for c in content.chars() {
        if c.is_lowercase() {
            let i = c as i32 - offset;
            if i < 97 {
                let i = 122 - (offset - (c as i32 - 97)) + 1;
                result.push(i as u8 as char);
            } else {
                result.push(i as u8 as char);
            }
        } else if c.is_uppercase() {
            let i = c as i32 - offset;
            if i < 65 {
                let i = 90 - (offset - (c as i32 - 65)) + 1;
                result.push(i as u8 as char);
            } else {
                result.push(i as u8 as char);
            }
        }
    }
    result
}

那上面主要是加密的部份,可以看到说定义了一个新的 String 作为回传
至於下面 for 回圈的部份则是先判断现在的位元是否为大写 / 小写
以此去做撰写
那 as 的技巧也有讲过了
as 需要注意的问题也就是可能会把长度截断的问题不会在此处出现
所以可以放心使用 owob
那麽解密部份的撰写是今天的作业


感觉我的文越来越水了
最近都在想到底要怎麽做才能把 Bevy 的东西 Run 起来
一直跑不出来真的要炸了
总之让我水一下ㄅ
周末一定弄好的内容出来owob


<<:  [火锅吃到饱-8] 鲜友火锅 Shian-Yeou Hot Pot - 台中太平店

>>:  Day 9 - 用 canvas 复刻 小画家 曲线

Day28:继续歪楼(全英文笔记 - II)

继续昨天的歪楼笔记,昨天只有写 webpack-dev-server, 今天来加上一些基本的插件还有...

Day21-pytorch(4)Dataset、DataLoader

为什麽需要用到这两个东西呢? 因为我们在训练资料时 如果每次输入的资料都是一整个一样的资料,表示每次...

Day06-条件判断与列表渲染

v-指令最後一章,就是v-if系列还有v-show, v-show 和v-if不一样的地方在接收到f...

Day25 - 如何安全的把 Kubernetes Secret 储存到 Git Repository

前言 在 Day24 我们建置了 Database 相关 yaml 档案,并且利用 Helm Cha...

25 - Stylelint - Lint CSS 程序码

样式表虽然较 JavaScript 单纯,但随着规则定义越来越多,样式表还是会因复杂的结构与繁杂的规...