• 破解替换密码


    题目

    EMGLOSUDCGDNCUSWYSFHNSFCYKDPUMLWGYICOXYSIPJCKQPKUGKMGOLICGINCGACKSNISACYKZSCKXECJCKSHYSXCGOIDPKZCNKSHICGIWYGKKGKGOLDSILKGOIUSIGLEDSPWZUGFZCCNDGYYSFUSZCNXEOJNCGYEWEUPXEZGACGNFGLKNSACIGOIYCKXCJUCIUZCFZCCNDGYYSFEUEKUZCSOCFZCCNC
    提示:F解密为w
    

    一开始以为是简单的替换,尝试逐个实验确定参数,做到自闭,最后还是靠统计+语法分析的方式做了出来。

    首先,统计出现的字符及其数量,
    '''
    count={}
    for i in range(len(cipher)):
    count[cipher[i]] = 0
    for i in range(len(cipher)):
    count[cipher[i]] += 1
    print(count)
    {'E': 12, 'M': 5, 'G': 24, 'L': 7, 'O': 10, 'S': 20, 'U': 14, 'D': 8, 'C': 37, 'N': 13, 'W': 5, 'Y': 15, 'F': 9, 'H': 5, 'K': 18, 'P': 6, 'I': 15, 'X': 7, 'J': 7, 'Q': 1, 'A': 5, 'Z': 13}
    '''
    C的出现频率远高于其他字符,我们先假设C的明文为e,再依据题意替换F为w,可以得到:

    由于wZee联想到wheel,所以,猜测Z代表h,N代表l,尝试得到:

    再通过leU、Uhe等联想到U可能代表t,即:

    出现过两次DGYYSw,暂时可以认为其为一个单独的单词。

    这时候注意到EtEK,应该为一个或两个单词,前面部分还有一个Et,结合后面的句子成分让我想到了it is the…,也就是说E代表i,K代表s:

    做到这儿,感觉S的问题又冒了出来,试过age后被否了,再回过头去看发现有3处tS,除去已经确定的剩下的比较常见的有to,th,但hOe显然构不成单词,还有几处Sr,又增加了S为o的可能,尝试S替代o:

    这样的话O就只能代表n构成one:

    YYow结尾的单词通常为llow,但感觉凑不成句子,观察一下Y,结尾处的Y让我一下想到了ster结尾,试一哈:

    借助于强大的搜索引擎和欧路词典,我得到了独轮手推车这个短语:wheel barrow,也就是说D代表b,G代表a,有:

    到这里发现rsb构不成单词开头,观察了一会儿,好像可以改成lowers,根据语感猜测MaL为may,也就是M代表m,L代表y,这样最后的master也合乎逻辑:

    猜测P为u,也就是bPt为but:

    重新整理了下结构如上,推测Hlowers代表flowers,也就能相应的猜测出Wrow代表grow,WarIen代表garden,即W代表g,H代表f,I代表d:

    到这里可以观察到如果X代表p,J代表C就可以得到produces和perfect两个符合句子意思的词:

    上文中ehicle联想到vehicle刚好同主题相关,也就是说A大概率对应v,刚好,v还未使用过,最后Q代表j似乎比较恰当:

    又排除了几处粗心留下的错误后,借助word的纠错功能断词为如下,是较为满意的答案:

    完成的过程中除了一开始说的错误,还尝试了以频率为主要依据解密,也非常不理想,所幸最后利用语法猜测出了结果,这样看来,早期的解密也实在是一项需要运气的工作。

  • 相关阅读:
    python 进度条
    linux中利用Shell脚本实现自动安装部署weblogic服务
    Linux虚拟机如何上网
    常用Python脚本
    Allure测试框架
    软件评测师 第二小时
    保险项目测试流程(一)
    电子商务网站测试总结
    Python随机生成电话号码&号码段分析
    Python中的*args和**kwargs
  • 原文地址:https://www.cnblogs.com/chuaner/p/11631241.html
Copyright © 2020-2023  润新知