hallow1024 发表于 2020-6-16 16:34:06

在网上看到的凯撒密码的题目,看不太懂,希望有大佬可以帮忙理一下思路

本帖最后由 hallow1024 于 2020-7-10 15:17 编辑

恺撒密码是古罗马恺撒大帝用来对军事情报进行加解密的算法,它采用了替换方法对信息中的每一个英文字符循环替换为字母表序列中该字符后面的第三个字符,即,字母表的对应关系如下:
原文:A B C D E F G H I J K L M N O P Q R S T U V W X Y

密文:D E F G H I J K L M N O P Q R S T U V W X Y Z A B

对于原文字符P,其密文字符C满足如下条件:C=(P+3) mod

上述是凯撒密码的加密方法,解密方法反之,即:P=(C-3) mod
假设用户可能使用的输入包含大小写字母a~zA~Z、空格和特殊符号,请编写一个程序,对输入字符串进行恺撒密码加密,直接输出结果,其中空格不用进行加密处理。




s = input()
t = ""
for c in s:
    if 'a' <= c <= 'z':
      t += chr( ord('a') + ((ord(c)-ord('a')) + 3 )%26 )
    elif 'A' <= c <= 'Z':
      t += chr( ord('A') + ((ord(c)-ord('A')) + 3 )%26 )
    else:
      t += c
print(t)


Twilight6 发表于 2020-6-16 19:07:43



凯撒加密简单的说就是你加密时候 加多少 ASCII 码值,解密时候就应该减多少 ASCII 码值

页: [1]
查看完整版本: 在网上看到的凯撒密码的题目,看不太懂,希望有大佬可以帮忙理一下思路