凯撒密码是一种非常古老的加密方法,相传当年凯撒大帝行军打仗时为了保证自己的命令不被敌军知道,就使用这种特殊的方法进行通信,以确保信息传递的安全。它的原理是字母与字母之间的替换。例如26个字母都向后移动K位。若K等于2,则A用C代替,B用D代替,以此类推。该算法比较简单,很容易实现,但是作为加密算法,特别容易被破解。
为了让加密后的密文更难被破解,大将苏定方想出一个更妙的方法:不再将每个字母移动常位数,而是利用一个密钥值序列将每个字母移动不同的位数。如果消息原文的长度大于密钥值序列的长度,则可以对密钥值序列循环使用。要求只对输入信息原文中的字母进行密码,非字母不需要加密。
如密钥值序列为3 2 5 1,信息原文为 AbcDfax#,那么利用密钥值序列对A移动3位为D,b移动2位为d,c移动5位为h,D移动1位为E,f移动3位为i,a移动2位为c,x移动5位为c。
则加密后的密文为:DdhEicc
第1行输入信息原文,以#号结束。
第2行输入密钥值序列,密钥值间用空格分割,以*号结束。
输出加密后的密文。