kotlin探究之旅-凯撒加密

阅读完成需要

9分钟

前面有讲过三篇的kotlin基础,相信看过那三篇的同学对kotlin的基础语法基本都有了一个大概的认识,如果认真研究研究,想必也可以熟练的应用kotlin敲代码了。

从这篇开始,主要开始kotlin的实践应用,利用kotlin的语法去实现加密算法,加密算法可以说是一个系列文章,公众号每天会更新一个加密算法,看完这篇,不仅可以让你对凯撒加密算法有一个新的认识,还可以带你去学习kotlin的具体实现,相信你一定会爱上kotlin这门语言的。

加密算法一般分为:

:DESAES凯撒加密

:RSA

:md5sha1sha256

:SHA256withRSA

加密算法一般会用到到ASCII码:

ASCII:美国信息交换标准代码,是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言。

对照着上面的表,我们先定义一个字符串,然后打印它的ASCII码,看看会运行出什么结果。

运行结果如下:

可以看到运行后的结果是一串数字,小伙伴们可以对照上面的ascii码表,看看是否能对的上。

上面代码中,我们还用到了一个kotlin的高级函数,with()

with函数是将某对象作为函数的参数。

在函数块内可以通过 this 指代该对象。返回值为函数块的最后一行或指定return表达式。

好了,学完ASCII码和with()函数后,就让我们一起来实现以下凯撒加密和解密算法吧!

凯撒算法的原理:把字符移动一定的位数来实现加密和解密:

加密

打印加密后的结果

可以看到,通过对字符串对应ascii码的偏移运算后,打印出来的字符和我们定义的字符串已经相差十万八千里了,是不是很神奇。

解密

打印结果:

可以看到,解密的代码和加密的代码几乎差不多,唯一不同的是,加密时,是将字符的ascii码与秘钥key进行相加偏移,而解密时,则是进行相反的偏移。

好了,下面是用kotlin实现的凯撒加密的完整代码:

完整代码运行的结果

代码很简单,你学会了吗,上面的代码中的加密和解密算法,其实是可以单独抽取出来,进行封装的,勤劳的小伙伴们可以动手自己去实现了。

END

天涯很远,时间很短。关注我们,每天进步一点点~

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181021G1HJ9X00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券