终于不用在线解密这么麻烦,教你用Python写凯撒密码Caesar Cipher(可以遍历位移量)

当去根据偏移量获取加解密的结果,我们需要从1-25的遍历加解密,太懒了
看线上的,很多是要改偏移量才能给结果,太懒了,不想动,能不能快点。
直接上码
在这里插入图片描述

在这里插入图片描述
26个字母双份了,因为当被加解密的字符和偏移量的相加后的和大于26时,也就是超出26个字符表,
单个26个字符表没法加解密出结果。所有双份字母表就解决了这个偏移量超出的问题。

'''
凯撒密码加解密
FRPHEVGL
ComeChina
'''
upperCaseStr = 'ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ'
lowerCaseStr = 'abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz'
caseStr = 'ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz'
def caesar_cipher(inputStr,offset=0):
    result_list = []
    if offset == 0:  # 不指定偏移量,需要遍历1-26
        for j in range(1,26):
            result_str = ''
            for i in inputStr:
                char_index = caseStr.index(i)  # 获取字符下标
                char_str = caseStr[char_index + j]  # 偏移后的字符
                result_str = result_str + char_str
            result_str = f'加密后字符:{result_str},偏移量:{j}'
            result_list.append(result_str)
    if offset > 0:  # 指定偏移量,直接加解密
        result_str = ''
        for i in inputStr:
            char_index = caseStr.index(i)  # 获取字符下标
            char_str = caseStr[char_index+offset]  # 偏移后的字符
            result_str = result_str+char_str
        result_str = f'加密后字符:{result_str},偏移量:{offset}'
        result_list.append(result_str)
    return result_list

print(caesar_cipher('FRPHEVGL',13))  # 指定偏移量=13
print(caesar_cipher('ComeChina',13)) # 指定偏移量=13
print(caesar_cipher('FRPHEVGL'))  # 不指定偏移量,会遍历的
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值