poem_encrypt(内含Decrypt-the-message的解密脚本)

本文介绍了poem_encrypt加密方式,通过选取诗歌中的单词形成秘钥,对文本进行加密。解密过程涉及对26取模,根据密文恢复单词位置,进而还原明文。同时,提供了Decrypt-the-Message问题的解密脚本。
摘要由CSDN通过智能技术生成

poem_encrypt是一种非常有意思的加密方式 介绍
今天学习了一下这种加密方式,所以在这里讲一下我的理解

poem_encrypt举例说明
1、一首诗
for my purpose holds to sail beyond the sunset, and the baths of all the western stars until I die.
2、从一首诗中选出k个单词(这里是6个),去掉特殊字符,组成一个字符串,给每个字符(该字符串字典序后的)序号
选取:“for”, “sail”, “all”, “stars”, “die.”

f o r s a i l a l l s t a r s d i e
6 12 13 15 1 7 9 2 10 11 16 18 3 14 17 4 8 5

3、选出来的字符串长度为18,所以将明文分成每行18个字符(去掉特殊字符),不足一行用’abc…'补足

明文:“We have run out of cigars, situation desperate.”

在这里插入图片描述
4、然后将这18列按照上面的6,12,13,15,1…的顺序组合到一起

就变成了:eud tdk oek cpm wrt…

再将加密的字符串按照某个长度切分:(这里是4)

eudt dkoe kcpm…

就变成了密文,最后传输的时候需要告诉收信人我使用了哪几个单词作为我的秘钥:
因为这里是第1个单词,第6个单词、第14个单词、第17个单词、第20个单词
所以编码后: afnqt(a表示1,f表示6,n表示14…)

tips: 这里其实就是单词在诗中的位置 对 26 取模的结果

所以最后的密文应该是:

afnqt eudt dkoe kcpm …

那么,给定了诗和密文,我们该怎样解码呢?

1、取密文的第一个字符串,解码得到我用了诗中哪些单词进行了加密

因为这里对26取模了,所以会有很多种情况

2、枚举每种秘钥进行,如果知道密码的话,按照加密流程,还原一下字符串顺序就可以了

code:(也就是攻防世界Decrypt-the-Message的解密脚本)

import itertools

def load_file(filename)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值