Python-rot13-替换式密码

rot13

密码描述
替换式密码:(ROT13是凯撒密码加密演算法的特例)

套用ROT13到一段文字上仅仅只需要检查字元字母顺序并取代它在13位之后的对应字母,有需要超过时则重新绕回26英文字母开头即可。A换成N、B换成O、依此类推到M换成Z,然后序列反转:N换成A、O换成B、最后Z换成M。只有这些出现在英文字母里头的字元受影响;数字、符号、空白字元以及所有其他字元都不变。因为只有在英文字母表里头只有26个,并且26=2×13,ROT13函数是它自己的逆反:

对任何字元x:ROT13(ROT13(x))=ROT26(x)=x
ABCDEFGHIJKLM
|||||||||||||
NOPQRSTUVWXYZ
基于python的解码器:
# author :  吉米
# creat time : 2023/1/19
# -*- coding: utf-8 -*-


def decoder(cipher):
    crypt_list = list(cipher)
    After_decryption = ""
    num = 13
    for ch in crypt_list:
        ch = ord(ch)
        if ord('a') <= ch <= ord('z'):
            ch = ch + num
            if ch > ord('z'):
                ch -= 26
        if ord('A') <= ch <= ord('Z'):
            ch = ch + num
            if ch > ord('Z'):
                ch -= 26
        a = chr(ch)
        After_decryption += a

    print('After_decryption:'+After_decryption)


if __name__ == '__main__':
    ciphertext = input("ciphertext:")
    decoder(ciphertext)
    print("已解码!")

示例:
解码前:57R9S980RNOS49973S757PQO9S80Q36P
解码后:57E9F980EABF49973F757CDB9F80D36C

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值