-
2020-09-25 22:35:55
题目
密文是一张NN的格子纸,每个格子都有一个字母。解密需要用到另一张NN的格子纸,这张纸有的格子是透明的,有的格子是涂黑的。两张纸重合后,将透明处的字母按照从上到下,行内自左到右的顺序读出,然后将解密纸顺时针旋转90度再读一次,一共读4次。现在给你密文和解密纸,请输出原文。
示例1:
输入:[1101,1010,1111,1110] ,
[ABCD,EFGH,IJKL,MNPQ]
输出:
CFHQGLMPAIKNBDEJ
备注:
1<=N<=100
代码
# 输入: # 1101,1010,1111,1110 # ABCD,EFGH,IJKL,MNPQ # 输出CFHQGLMPAIKNBDEJ # s = [i for i in input().split(',')] # 用户输入 # s2 = [i for i in input().split(',')] s=["1101","1010","1111","1110"] s2 = ["ABCD","EFGH","IJKL","MNPQ"] res = [] # 存0出现的位置的索引(坐标) res2 = [] # 存从字母矩阵中取出来的字符 for j in range(0, len(s)): # 行遍历 for k in range(0, len(s)): # 列遍历,因为是N*N的方阵 ,此处是宽度为len(s) if '0' == s[j][k]: # 如果为0,记下坐标 res.append([j, k]) for k in range(4): for m in range(0, len(s)): if k == 0: # 第一次不作索引变换 continue temp = res[m][0] # 下一次出现的位置相对于上一次的旧位置(x, y)来说为(y, len(s)-x-1) res[m][0] = res[m][1] res[m][1] = len(s)-temp-1 # print('res', res) res.sort() # 排序,为了满足下一次从上往下,从左往右遍历条件 for l in range(len(s)): res2.append(s2[res[l][0]][res[l][1]]) # 依次添加各个坐标上对应的矩阵元素 print(res2) print(''.join(res2)) # 输出CFHQGLMPAIKNBDEJ
更多相关内容 -
ctf密码学------密文解码python脚本(凯撒解密)
2020-12-08 18:06:29题目来源实验吧 分析题意,说是困在栅栏中,所以将字符栅栏解密看看有什么,利用工具CTFcraktools 得到三条密文然后说是密码是凯撒,在将四栏依次凯撒解码,寻找可能的key,这里很显然,在尝试第一个的时候,解出的...题目来源实验吧
分析题意,说是困在栅栏中,所以将字符栅栏解密看看有什么,利用工具CTFcraktools
得到三条密文
然后说是密码是凯撒,在将四栏依次凯撒解码,寻找可能的key,这里很显然,在尝试第一个的时候,解出的明文里有一个“CTF{}”字样的一栏
解题成功。
这时我在想,这些结果那么多,若果结果再多些,那么答案就更不容易找到。于是我写了一个给出密文和偏移度就能写得出唯一的结果。说了那么多上代码
#!/usr/bin/python
#encoding=utf-8
import string
import sys
z=[]
for i in string.lowercase: #string.lowercase表示a~z所有字母
z.append(i)
zifu=raw_input("zi fu chuan:")
n=raw_input("pian yi du:")
str1=''
for i in zifu:
if ord(i)+int(n)>122: #ord()函数给出字母的ASCII码
a=96+ord(i)+int(n)-122
else:
a=ord(i)+int(n)
str1+=chr(a) #给出ASCII码的对应字母
print str1
执行结果:
脚本马马虎虎吧,害怕你们不理解,还用上了拼音(咳咳,承认不会英语)
担待担待。。。。
-
三分钟教你学会如何将密文解码成明文
2018-06-20 16:44:051:准备好你的密文(将铭文转换成密文) 代码如下: # coding=utf-8 import base64 def encrypt(en_str): """ 加密:先对原字符串作base64加密,然后将加密后的字符串首尾字符对换位置,得到密文 :param en_...1:准备好你的密文(将铭文转换成密文)
代码如下:# coding=utf-8 import base64 def encrypt(en_str): """ 加密:先对原字符串作base64加密,然后将加密后的字符串首尾字符对换位置,得到密文 :param en_str: 待加密明文 :return: 加密后的密文 """ en_str = base64.b64encode(en_str) # print "加密后的字符串: " + en_str en_str = en_str[-1] + en_str[1:len(en_str) - 1] + en_str[0] # print "对换后的字符串: " + en_str return en_str def decrypt(de_str): """ 解密:先将密文首尾字符对换位置,然后base64解密 :param de_str: 待解密密文 :return: """ de_str = de_str[-1] + de_str[1:len(de_str) - 1] + de_str[0] # print "解密前的字符串: " + de_str de_str = base64.b64decode(de_str) # print "解密后的字符串: " + de_str return de_str if __name__ == '__main__': str = '这里填写你想要生成密文的明文,程序会自动生成一连串的密文给你' en_str = encrypt(str) print en_str de_str = decrypt(en_str) print de_str
我已经准备生成好的密文如下:想看看这段密文写的是什么吗?随着我的脚步一步步来看吧,你会看到意想不到的惊喜,也会惊艳与自己的破解密文的能力。
WYWz5rOo5YWs5LyX5Y+34oCc57yW56iL5b6u5YiK4oCd77yM6K6k6K+G576O5aWz5bCP57y52:Python开发环境的安装,如果没有的话,推荐一款在线运行神器:https://c.runoob.com/compile/6
3:将密文转换成明文的代码如下
将这段代码粘贴在神器里面,想看看小编说了一句什么话吗?那就点击运行:
# coding=utf-8 import base64 def encrypt(en_str): """ 加密:先对原字符串作base64加密,然后将加密后的字符串首尾字符对换位置,得到密文 :param en_str: 待加密明文 :return: 加密后的密文 """ en_str = base64.b64encode(en_str) # print "加密后的字符串: " + en_str en_str = en_str[-1] + en_str[1:len(en_str) - 1] + en_str[0] # print "对换后的字符串: " + en_str return en_str def decrypt(de_str): """ 解密:先将密文首尾字符对换位置,然后base64解密 :param de_str: 待解密密文 :return: """ de_str = de_str[-1] + de_str[1:len(de_str) - 1] + de_str[0] # print "解密前的字符串: " + de_str de_str = base64.b64decode(de_str) # print "解密后的字符串: " + de_str return de_str if __name__ == '__main__': en_str = 'WYWz5rOo5YWs5LyX5Y+34oCc57yW56iL5b6u5YiK4oCd77yM6K6k6K+G576O5aWz5bCP57y5' print en_str de_str = decrypt(en_str) print de_str
OK,从朋友那里学来的Python解密小技巧,记录一下。
原文作者:祈澈姑娘技术博客:https://www.jianshu.com/u/05f416aefbe1
- 关注「编程微刊」公众号 ,在微信后台回复「领取资源」,获取IT资源300G干货大全。
-
订阅内容解码失败(非base64码)_【每日礼包】超杀默示录 密文解码礼包大全
2020-11-25 18:26:28超杀默示录密文超杀默示录是一款非常有趣味性的国漫风格的动作手游,这款手机游戏中完美融合了二次元和三国元素,游戏玩法新颖独特,可玩性十足,超暧昧后宫,约会天天不重样!有颜又有料!三人小队,自由切换搭配...超杀默示录密文
超杀默示录是一款非常有趣味性的国漫风格的动作手游,这款手机游戏中完美融合了二次元和三国元素,游戏玩法新颖独特,可玩性十足,超暧昧后宫,约会天天不重样!有颜又有料!三人小队,自由切换搭配百变!更有武将无双大招,超炫技能闪爆荧屏!享受视觉盛宴,爽快连击,体验一群三国时期少女们战斗、受伤、然后成长的故事。
游戏玩法:
-135位英雄集结,75位命定女主
一共有135位角色会出现在你的旅程当中,其中有75位女性。你可以和他们一起成长,经历每场战斗,最终拯救超杀世界。-国漫画风,本土团队打造专属引擎
最具有中国本土特色的立绘与场景,顶级国漫大师参与创作,原汁原味体验中国漫画式的激斗游戏,享受视觉神经的沉醉之旅。-无双连击,多元必杀华丽联携
技能任意組合,用各式战斗技能横扫战场,让连击操作技巧助你三国无双,击败最强BOSS。通用兑换码
兑换码:SBSASHCHBC
礼包内容:烈战魂*200,铜币*50w,草人*200
下面的兑换码具体到期时间不详,大家可以试试:
通用礼包码:
HAPPYSHOPPING
EXCHANGE666
ICARRY
AICIEPCB6F86
JAIRUIHUYU
HOTROLELIST
兑换说明:
1.进入游戏主页面,点击密文解码;
2。在密文解码页面底部输入兑换码,并点击解密按钮;
3.完成解密后到查看邮箱,就能够获得礼包内的奖励啦。
好了小伙伴们今天的礼包介绍就到这里拉,礼包数量有限先到先得喜欢的小伙伴快快去领取吧!
本内容由订阅号:兑换码中心 收集整理而来
每日更新热门手游礼包
感谢您抽出
·
来阅读此文
↓↓↓点击下方【】每日更新兑换码!
-
微信退款异步通知密文解码
2020-04-10 10:43:50我们对一笔微信退款是否成功除了查询以外,还有最保险的一种模式就是对通知的解析,但是微信退款通知居然是密文模式的。 我们要根据他的要求解密出来以后才可以解析。那么先拿到通知吧。 二、接收通知 三、解析... -
记一次AES密文解码之CryptJS能行其他算法不行的悲伤经历
2022-04-05 16:53:15一段AES加密后的密文,KEY、mode、padding参数都知道了,CryptoJs能正常解密,JAVA和一众在线解密网站却都无法解密。尴尬了 -
微信小程序 密文解码遇上的错误:unable to decode base64 string: invalid characters encountered in ...
2021-03-10 21:58:34博主在用java做微信小程序的密文解码时遇到了这个问题。挠人的是这个错误只是偶尔出现,但是很影响使用体验。经过一番排查总算找到了错误原因。 这是一个很容易忽视的坑。具体错误`: 2021-03-10 21:43:32.224 ERROR... -
CTF技巧_MISC——Python脚本十六进制密文解码、多个等号的密文不是Base64
2020-07-25 16:24:09文章目录一、Base32加密二、Python脚本十六进制密文解码 一、Base32加密 除了Base64还有Base32的密文 而Base32会出现好几个等号的密文 –>Base32加解密传送门<– 举个例子 #明文 Base32加密 #密文 ...