返回

编程之战

首页
关灯
护眼
字体:
第二十八章 凯撒加密
书架管理 返回目录
    系统导航功能在杨成的修复下恢复了正常,他重新回溯到任务中心节点。

    “系统正在分配任务”

    “下一站,公元前58年。”

    “位置,高卢。”

    “开启罗马共和国凯撒剧本”

    下一刻,杨成出现在了一座大帐之中,明晃晃的牛油烛照的内部无比地通亮。

    “阿历克斯”,一位坐在帐中的中年男子轻声呼唤道。

    只见他身穿古罗马风格的甲胄,举手投足间流露出上位者的气场。

    “尊敬的总督,您有何吩咐?”

    杨成很快进入了角色。

    这中年男子是历史上赫赫有名的罗马执政者,尤里乌斯凯撒。

    而他此时此刻的身份,是高卢总督。

    “阿历克斯,我最信赖的助手”。

    凯撒示意他走过来,看看桌面上的羊皮卷。

    “我时常给西塞罗先生写信,为了防止有人知晓咋们之间的秘密,于是,我发明了一种加密的方法,记载在这张羊皮卷上”。

    杨成定睛一看,发现这种加密手段就是把明文中的每一个字母用它在字母表上位置后面的第三个字母代替。

    这可以说是一种相当简单的加密变换。

    “您有何疑问?”,杨成很有耐心地问道。

    “我反复思索,觉得这样做还是不够保险。”

    “万一罗马共和国的敌人和那些我的政敌掌握了这些内容,他们一定会不择手段地来攻击我,毁谤我的荣誉!”

    “所以,阿历克斯,希望你能帮帮我,改进下这个加密方式,让它更安全!”

    凯撒眼中饱含期待。

    “请您不要着急,我来琢磨一下”。

    杨成从凯撒手中接过了羊皮卷,拿在手上细细地端详起来。

    牛油烛忠实地散发出光芒,点亮了杨成的思绪。

    传统的凯撒加密,会根据字母表将文本中的所有字母移动固定的位数k。

    而如果要对凯撒加密做一个小小的改进,就必须打破这个常规。

    在迭代加密的过程中,k不能是个常量,那样太容易被敌人猜出来。

    因此,我们可以采用一个变量。

    这个变量怎么变呢?

    如果k被初始化为1,那么文本的第一个字母将在字母表中向右移动1位,第二个字母将向右移动2位,依此类推

    换句话说,k是按照1来递增的。

    这样做,就略微增大了解密的难度。

    甚至于,我们可以把加密后的密文,分派给四个,五个,甚至更多的送信人,让他们依次送给西塞罗。

    等密文合并后,再统一地进行解密。

    杨成有了思路后,很快开始编写代码。

    这个关卡主要难点在于2个给拉丁字母进行左右移位的方法,作为加密和解密的帮助方法。

    当杨成敲完了最后一行代码,他有些疲倦地抬起头。

    眼前未来的凯撒大帝已经不见了,牛油烛也统统熄灭了。

    高卢,这个历史上的法兰西,来自东方的第一缕曙光照进了大帐。

    “叮!恭喜您完成了凯撒加密的相关任务!”

    “当前积分59分,击败了全球28%的玩家,请您再接再厉!”

上一章 目录 下一章