一个简单的加密算法

凯撒加密是一种简单的加密技术。据记载,这是凯撒大帝曾经用来对军事信息进行加密的方法。

这是一种替换加密的技术。想要传递的密文的所有字母都在字母表中向后或者向前移动一个固定数值的距离,形成明文。

举个????

当偏移量是5的时候,密文中所有字母a都被替换成f,b都被替换成g,z都被替换成e,以此类推。

需要注意的是这是一个循环的过程,z后面接着a,因此需要模26,加密和解密是一个相反的过程,一个加上偏移量,另一个就减去偏移量,反之亦反。

知道原理后,我们来用Python实现一下这个凯撒加密吧~

我们可以默认偏移量是5(当然这个参数可以设置),遍历密文字符串,如果当前字符不属于字母,我们便不做改动。

当这个字符是字母时,我们需要按照大小写来分别看待,大写字母共用一套密码,小写字母共用一套密码。

Python的内置函数 ord() 可以输出字符的ASCII码,而 chr() 则正好相反,可以输出ASCII码对应的字符。

def enc(string,offset=5):
    
    new_string=[]
    for st in string:
        if not st.isalpha():
            new_string.append(st)


        else:
            a="A" if st.isupper() else "a"
            new_string.append(chr((ord(st)-ord(a)+offset)%26+ord(a)))
        encryptor="".join(new_string)
    print(encryptor)

下面这个字符串是我对你说的悄悄话,来破解一下吧!

'Bjqhtrj yt anxny rd tkknhnfq fhhtzsy,Ymfspx ktw dtzw wjfinsl!'

破解了也没有奖励的~

往期精彩推荐

优质公众号文章批量下载

多线程视频批量下载

新版滑动验证码

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值