凯撒密码(Caesa)——python解密

简介

在密码学中,恺撒密码(英语: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:周天

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值