实验吧 trivial

2019-01-15  本文已影响0人  HOtMI1k

自己是真的菜。

网上的解题代码很多了,这里就不说了,主要是解析一下。

PS:trivial在数学里是一眼就可以看出来的意思,也就“显然” orz

先是认真的分析了一下,但觉得好复杂哦md,看了答案一回味,这原来是凯撒密码。

enc_char = ord('a') + (ord(plaintext[i])-ord('a')+rotate_amount)%26

就是凯撒移位密码,rotate就是移动的位数。

所以这个加密是,给定key和plaintext后,根据key和plaintext生成一个移动的位数rotate

rotate的值和plaintext有关,也就是plaintext中的每一位都要进行移位,而每一位需要移位的数rotate都是不一样的

所以解密就是把密文减去rotate就行了,而移位数rotate和  key的值,plaintext的index有关,因为移位加密并不改变数据长度,所以cipher的index和plaint的index是相等的,也就是密文直接移位减去rotate就是明文了

上一篇下一篇

猜你喜欢

热点阅读