凯撒加密法

凯撒加密法

根据密钥以不同方式加密消息,密钥是从0到25的整数。

算法大意

将明文通过有序替换的方式变成密文,
及将明文在密文字典的位置加上密钥数值后锁定密文字典里的新文字就成了密文。
此方法缺点就是当知道了字典后可以尝试暴力破解。

代码实例

# 密文字典
global LETTERS
LETTERS = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
# 加密算法
def cliper(msg,mode,key):
    msg = msg.upper()
    translated = ''
    for symbol in msg:
        if symbol in LETTERS:
            num = LETTERS.find(symbol)
            if mode =='encrypt':
                num = num + key
            elif mode == 'decrypt':
                num = num - key
            if num >= len(LETTERS):
                num = num - len(LETTERS)
            elif num < 0 :
                num = num + len(LETTERS)
            translated = translated + LETTERS[num]
        else:
            translated = translated + symbol
    return translated

# 明文加密
message = 'This is my secret message.'
# 密钥为13
translated = cliper(message,mode = 'encrypt',key = 13)
print(translated)
# 密文解密
clipertxt = translated
txt = cliper(clipertxt,'decrypt',key = 13)
print(txt)


# 暴力破解算法
def decipher(msg):
    msg = msg.upper()
    for key in range(len(LETTERS)):
        translated = ''
        for symbol in msg:
            if symbol in LETTERS:
                num= LETTERS.find(symbol)
                num = num - key
                if num < 0:
                    num = num + len(LETTERS)
                translated = translated + LETTERS[num]
            else:
                translated = translated + symbol
        print(translated)
print('------暴力破解密文--------')
decipher(clipertxt)

运行结果

GUVF VF ZL FRPERG ZRFFNTR.
THIS IS MY SECRET MESSAGE.
------暴力破解密文--------
GUVF VF ZL FRPERG ZRFFNTR.
FTUE UE YK EQODQF YQEEMSQ.
ESTD TD XJ DPNCPE XPDDLRP.
DRSC SC WI COMBOD WOCCKQO.
CQRB RB VH BNLANC VNBBJPN.
BPQA QA UG AMKZMB UMAAIOM.
AOPZ PZ TF ZLJYLA TLZZHNL.
ZNOY OY SE YKIXKZ SKYYGMK.
YMNX NX RD XJHWJY RJXXFLJ.
XLMW MW QC WIGVIX QIWWEKI.
WKLV LV PB VHFUHW PHVVDJH.
VJKU KU OA UGETGV OGUUCIG.
UIJT JT NZ TFDSFU NFTTBHF.
THIS IS MY SECRET MESSAGE.
SGHR HR LX RDBQDS LDRRZFD.
RFGQ GQ KW QCAPCR KCQQYEC.
QEFP FP JV PBZOBQ JBPPXDB.
PDEO EO IU OAYNAP IAOOWCA.
OCDN DN HT NZXMZO HZNNVBZ.
NBCM CM GS MYWLYN GYMMUAY.
MABL BL FR LXVKXM FXLLTZX.
LZAK AK EQ KWUJWL EWKKSYW.
KYZJ ZJ DP JVTIVK DVJJRXV.
JXYI YI CO IUSHUJ CUIIQWU.
IWXH XH BN HTRGTI BTHHPVT.
HVWG WG AM GSQFSH ASGGOUS.

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值