简介
在密码学中,恺撒密码(英语:Caesar cipher),或称恺撒加密、恺撒变换、变换加密,是一种最简单且最广为人知的加密技术。它是一种替换加密的技术,明文中的所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移后被替换成密文。
实现
恺撒密码的替换方法是通过排列明文和密文字母表,密文字母表示通过将明文字母表向左或向右移动一个固定数目的位置。例如,当偏移量是左移3的时候(解密时的密钥就是3):
明文字母表:ABCDEFGHIJKLMNOPQRSTUVWXYZ
密文字母表:DEFGHIJKLMNOPQRSTUVWXYZABC
或者
明文字母表:abcdefghijklmnopqrstuvwxyz
密文字母表:defghijklmnopqrstuvwxyzabc
代码
函数实现,先减去相对于A(a)的位置,然后再减去偏移量,求余加上相对于A(a)的值,最后得到结果。
def carsar(string, n):
for i in range(0, len(string)):
if 'A' <= string[i] <= 'Z':
#减去相对位置,以及偏移量
num = ord(string[i]) - 65 - n
#加上相对位置
s = chr(num % 26 + 65)
print(s, end="")
if 'a' <= string[i] <= 'z':
num = ord(string[i]) - 97 - n
s = chr(num % 26 + 97)
print(s, end="")
print("")
主函数
import Caesar
if __name__ == "__main__":
Caesar.carsar("flag", 3)
总结
很经典的密码,现在很少见了,但还是会遇到,记住
主要就是偏移量
特定名称
偏移量为10:Avocat(A→K)
偏移量为13:ROT13
偏移量为-5:Cassis (K 6)
偏移量为-6:Cassette (K 7)
偏移量为7:周天