(一)Kotlin加密/解密之ASCII码

321 阅读2分钟

前言

现在的互联网,可谓是处处暗藏着危机,电信诈骗层出不穷,我就被骗了8000块,说出来都是泪~~~~~,这一切很大一部分都是信息的泄露造成的。所以对信息的加密和解密很有必要学习,所以我最近在学习加解密的知识,记录一下,与君共享,若君也是技术爱好者,互关一下,一起进步。

一、ASCII码是什么?

image.png

ASCII码就是一个编码对照表,因为计算机只认识0和1,但是我们需要显示字符,并且打印出来。我们总不能打印一些0和1吧,所以有了一张ASCII码表,如下图所示,显示的时候只要把ASCII码值转成二进制就可以在计算机上表示对应的字符了,比如65就表示大写的“A”,当计算机读取到65的二进制时,就显示A

Ascii.jpg

二、ASCII码的使用

1.为什么要用ASCII码

也许有读者会问,ASCII码和加解密有啥关系呢?关系就是有的加密/解密算法会用到ASCII,因为ASCII码对应着不同的字符,如果我们按照一定的规则改变了字符的ASCII码,那么字符就会变成其他的字符,比如加入我们要传递一个字符“A”,我们都知道A的ASCII值是97,传输的时候我们可以将ASCII值加一变成98,再传输,接收方收到后再将收到的信息A的ASCII码值做减一操作,变成97,得到原来的值B,如图所示:

image.png

其实这就是后面会说到的凯撒加密算法

2.Kotlin获取字符的ASCII码值

因为要将加密/解密算法用程序来完成,所以我们要实现加密解密,就必须想办法获取到需要加解密的信息的ASCII码值:

代码如下:

fun main() {
    //获取字符的ascii编码
    val c: Char = 'a'
    val value = c.code
    println(value)
    //获取多个字符的Ascii
    val str = "I love you"
    //遍历获取每一个字符的Ascii
    val result = with(StringBuilder()) {
        val array = str.toCharArray()
        for (ch in array) {
            var result = ch.code
            append("$result ")
        }
        //返回结果
        toString()
    }

    println(result)
}

总结

ASCII 的内容就讲到这里啦,本文只能是带领读者简单入门,主要讲了什么是ASCII码以及如何使用kotlin获取ASCII码值。如果需要更加深入的了解ASCII的知识,建议读者去阅读相关的博客和书籍,下节会讲基于ASCII码的凯撒加密算法