原先编过一个,删掉了。现在重新编。
还是先讲一下移位密码的历史吧。
恺撒移位密码,古典密码中一个非常著名的例子,位移密钥k=3。
类似这种在丹布朗的小说中也有涉及(好像是《数字城堡》)。
现在,我们开始编程。
其实这就是一道简单题,而且只有25种可能情况。
先假定密文都是英文小写字母或空格。
代码中的k=1,就表示求密文中单个字母的下一个;k=2表示下两个。
M是一个字符串,用来存储密文。
var M:ansistring
k,i,t:integer
begin
readln(M)
for k:=1 to 25 do
begin
write('k=',k,' ')
for i:=1 to length(M) do
if M[i]=' ' then write(M[i])
else begin
t:=ord(M[i])+k
if t>122 then dec(t,26)
write(chr(t))
end
writeln
end
end.
经测试,可以通过,比如这个样例: