WeChall - Training: Crypto - Digraphs (Crypto, Training)

Digraphs

  1. Training: Crypto - Digraphs (Crypto, Training)
    题中采用两个字符代替一个字符,理论上可以加密26*26个字符。
    -》替代密码斜体样式加密,可采用穷举或密码分析,但26*26字母表较大,先将密文还原为单字符替代的形式。
input = """jmlgzcbnnhxkwikauhxkwifilgzcgzri odlgka jcladcnhcsnkwilajc wiomfigz salagzgzxkbnla gzkadcdclagzgzcukauhuhcsri jpxkgz zclgwi wilglg jcficucufidckauhwi lafiwiomlanhib wsxkgz fiwitn jplauhuhib bnlglgjc qflgrnri kezcwilanh wiomfigz rblacswslgnhjc xkgz gzlguhkawifilgzcya nkficunkuhlalaomuhnhsaomri"""
s = input.split(' ')

key = []
result = ''
for i in range(len(s)):
    j = s[i]
    for k in range(0, len(s[i]), 2):
        if j[k:k+2] not in key:
            key.append(j[k:k+2])
        result += chr(key.index(j[k:k+2]) + ord('a'))
    result += " "
print(result)

还原出单字符替代的形式后,放到quipqiup进行观察

quipqiup是Edwin Olson的快速自动密码求解器。它可以解决报纸上经常出现的简单替代密码,包括诸如密码窃听器(保留单词边界)之类的难题和爱国主义者(如密码迷)之类的难题。在这里插入图片描述

在这里插入图片描述

根据明密文对应关系建立部分明密文字典,进一步进行分析。
根据找出的message、difficult、either、decrypted等

input = """jmlgzcbnnhxkwikauhxkwifilgzcgzri odlgka jcladcnhcsnkwilajc wiomfigz salagzgzxkbnla gzkadcdclagzgzcukauhuhcsri jpxkgz zclgwi wilglg jcficucufidckauhwi lafiwiomlanhib wsxkgz fiwitn jplauhuhib bnlglgjc qflgrnri kezcwilanh wiomfigz rblacswslgnhjc xkgz gzlguhkawifilgzcya nkficunkuhlalaomuhnhsaomri"""
s = input.split(" ")

dic = {'od': 'y', 'lg': 'o', 'ka': 'u', 'jc': 'd', 'la': 'e', 'dc': 'c', 'nh': 'r', 'cs': 'y', 'nk': 'p', 'wi': 't',
       'om': 'h', 'fi': 'i', 'gz': 's', 'sa': 'm', 'bn': 'g', 'xk': 'a', 'uh': 'l', 'zc': 'n', 'cu': 'f', 'rb': 'k',
       'ws': 'w', 'ke': 'e', 'jm': 'C'}
# dic = {'ie':'C','rk':'o','vk':'n','ll':'g','hw':'r','ha':'a','rd':'t','jz':'u','aa':'l','sx':'i','nq':'s','cx':'y'}
for i in s:
    a = []
    for j in range(0, len(i), 2):
        a.append(i[j:j + 2])  # 密文字符串每两个分开
    print(a)
    b = []
    for k in a:
        if k in dic:
            b.append(dic[k])  # 解密
        else:
            b.append('_')  # 解不出来的用_填充
    txt = ''.join(b)
    print(txt)

注意,其中包含标点符号。
最后得出flag:pifpleehlrmh在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值