W型加密栅栏密码解密

article/2025/10/3 22:45:52

题目描述:被小鱼一连将了两军,你心里更加不服气了。两个人一起继续往前走, 一路上杂耍卖艺的很多,但是你俩毫无兴趣,直直的就冲着下一个谜题的地方去了。 到了一看,这个谜面看起来就已经有点像答案了样子了,旁边还画着一张画,是一副农家小院的 图画,上面画着一个农妇在栅栏里面喂5只小鸡,你嘿嘿一笑对着小鱼说这次可是我先找到答案了
ccehgyaefnpeoobe{lcirg}epriec_ora_g

1

# -*- coding: utf-8 -*-'''
helloworldgoodmorningxxxx 5
h       l       r       xe     r d     o n     xl   o   g   m   i   xl w     o d     n xo       o       g
hlrnerdonilogmiqlwodnxoog7
5 1
3 3
1 5
7helloworldgoodmorningxxxx 4
h     o     o     i     xe   w r   o d   n n   xl o   l g   m r   g xl     d     o     x
hooixewrodnnxlolgmrgxldox5
3 1
1 3
5
'''def enc(plain, num):matrix = [([0] * len(plain)) for i in range(num)]# 获取i的取值序列i_s = []for a in range(num):i_s.append(a)for a in range(num - 2, 0, -1):i_s.append(a)i_s_len = len(i_s)# 按规则写入i = 0for c in plain:matrix[i_s[i % i_s_len]][i] = ci += 1# 排除空值,从头到尾取出encrypted = ''for i in range(num):for j in range(len(plain)):if matrix[i][j]:encrypted += matrix[i][j]# 临时输出
#    for i in range(num):
#        for j in range(len(plain)):
#            print (matrix[i][j], ' ')
#        print()return encrypteddef dec(encrypted, num):matrix = [([0] * len(encrypted)) for i in range(num)]cur = 0for i in range(num):  # 按行来填# 生成每行空格个数的取值序列if i == 0:  # 第1行和最后一行,只需要一个取值就好了pair = [(num-(i+1))*2-1]elif i == num-1:pair = [i*2-1]else:pair = [(num-(i+1))*2-1, i*2-1]# 按规则填入pair_i = 0j = iwhile True:if cur < len(encrypted):matrix[i][j] = encrypted[cur]cur += 1j += pair[pair_i % len(pair)]+1  # 这里要加1,直接加间隔是不够的pair_i += 1if j >= len(encrypted):break# 临时输出
#    for i in range(num):
#        for j in range(len(encrypted)):
#            print (matrix[i][j], ' ')
#        print()# 获取i的取值序列i_s = []for a in range(num):i_s.append(a)for a in range(num - 2, 0, -1):i_s.append(a)i_s_len = len(i_s)# 按规则取出decrypted = ''for j in range(len(encrypted)):decrypted += matrix[i_s[j % i_s_len]][j]return decryptedencrypted = 'ccehgyaefnpeoobe{lcirg}epriec_ora_g'
num = 5
for i in range(2,len(encrypted)):print('分为'+str(i)+'栏时,解密结果为:'+dec(encrypted, i)  )
'''
hooixewrodnnxlolgmrgxldox
helloworldgoodmorningxxxx
cyberpeace{railfence_cipher_gogogo}
'''

http://chatgpt.dhexx.cn/article/mO397fmk.shtml

相关文章

python实现栅栏密码加解密

1.栅栏密码介绍 所谓栅栏密码&#xff0c;就是把要加密的明文分成N个一组&#xff0c;然后把每组的第1个字连起来&#xff0c;形成一段无规律的话。不过栅栏密码本身有一个潜规则&#xff0c;就是组成栅栏的字母一般不会太多。 —百度百科 例如&#xff1a; 将明文字符串&quo…

CTF之做题总结(二)

Crypto&#xff08;密码学&#xff09;做题记录 1、Railfence&#xff08;栅栏密码&#xff09; 我们先来看一下题目描述&#xff1a; 题目附件的内容是&#xff1a; ccehgyaefnpeoobe{lcirg}epriec_ora_g 从题目Railfence&#xff08;栅栏密码&#xff09;和题目描述中我们…

攻防世界 crypto Railfence

Railfence 题目 附件 ccehgyaefnpeoobe{lcirg}epriec_ora_g 栅栏密码 ①把将要传递的信息中的字母交替排成上下两行。 ②再将下面一行字母排在上面一行的后边&#xff0c;从而形成一段密码。 ③例如&#xff1a; 明文&#xff1a;THE LONGEST DAY MUST HAVE AN END 加密&…

sql server 替换字符串中的某些字符

declare stringFinal nvarchar(128) declare index intset stringOrigin 111,222,333 set stringChange 999 --将字符串stringOrigin中“,”之前的部分换成stringChange--先获取“,”在stringOrigin中的索引 set index charindex(,,stringOrigin,1) --charindex(想要找到的字…

【MySql】sql语句--批量替换字符串

【需求】 项目中需要批量替换mysql数据库中&#xff0c;指定表中的指定字段中的字符串。 【实现】 方法一&#xff1a; 可以用mysql可视化工具---Navicat&#xff0c;直接ctrlF&#xff0c;然后点击替换前的选框。如下图&#xff1a; 也或者可以从菜单中找到替换&#xff0c;…

sql 字符串函数

代码写出来如下&#xff1a; 代码有点多没截完 第二个表如下&#xff1a; 代码如下展示&#xff1a; 第三个表如下&#xff1a; 代码如下&#xff1a; 第四张表 代码如下&#xff1a; 字符串函数 1.charindex 用来寻找这个字在字符串中的位置 select charindex(SQl,my SQL C…

SQL截取字符串和替换字段

1.要操作的数据库的表 2. SELECT left(operateperson,2) from bus_inport left(str,length) str&#xff1a;被截取的字符串。 length&#xff1a;截取的长度 从左边开始截取 执行的结果&#xff1a; 3. SELECT right(operateperson,1) from bus_inport right(str,length)…

SQL Server 数据库之字符串函数

字符串函数 1. 概述2. ASCII 函数3. Charindex 函数4. Left 函数5. Right 函数6. Len 函数7. Replace 函数8. Reverse 函数9. Str 函数10. Substring 函数 1. 概述 用字符串函数能对输入字符串进行类型转换和长度设置等操作&#xff0c;是数据库处理中常用的函数类型&#xff…

sql server中replace()函数,可用于字符串替换

语法 sql server中replace()函数&#xff0c;可用于字符串替换 replace(string1,string2,string3) string1:搜索的文本 string2&#xff1a;查找的文本 string3&#xff1a;替换的文本 示例-名字替换 select replace(张三,三,四) 结果 张四 延伸示例-分类 分类&#x…

sqlserver替换特殊字符

1.直接转换 select REPLACE(列名,’’,’’) from 表 2.函数转换 先查询字符的ascii码 select ascii()得到结果 通过char转换成字符串 char(64) --返回然后去替换 select REPLACE(列名,char(64),) from 表常用字符串函数文档 https://blog.csdn.net/qq_39569480/article…

语音信号预处理4——绘制接滤波后chirp信号的时域图和频域图

写在前面&#xff1a;仅作为个人学习笔记&#xff0c;便于以后查阅&#xff0c;如对你有帮助&#xff0c;荣幸之至&#xff0c;如有错误&#xff0c;欢迎评论指正 编程软件&#xff1a;matlab R2018b 系统&#xff1a; win10 系列文章目录 chirp信号的生成与接收对接收到的c…

77GHz毫米波雷达快速chirp信号技术(四):TDM MIMO

设:天线如下图所示:有两个发射天线,4个接收天线 4个虚拟接收天线。接收天线间距 λ 2 \frac{\lambda}{2} 2λ​。发射天线间距 2 λ 2\lambda 2λ。 角度分辨率

声音信标发出白噪声和发出chirp信号的对比测距说明

在 十五届全国大学生智能汽车竞赛 中安排后一个 声音信标导航 竞赛组别。参赛同学反馈&#xff0c;声音信标发送的 Chirp信号 在远处听起来会令人产生一种恐慌紧张的感觉&#xff0c;极大扰民。 如果将信标的声音改成同样宽带音频的白噪声信号&#xff0c;在听觉上与Chirp信号…

Chirp信号公式与对离散生成算法之间的差异

讨论产生线性频率变化的公式和它的离散公式之间的差异&#xff0c;并提出Chirp信号的修改方案。 Chirp信号的公式 对于固定频率 f 1 f_1 f1​的信号&#xff0c;它的表达式为&#xff1a; r ( t ) cos ⁡ ( 2 π ⋅ f 1 ⋅ t ) r\left( t \right) \cos \left( {2\pi \cdot …

matlab啁啾信号,啁啾信号chirp(扫频余弦信号)

Chirp信号 Generate swept-frequency cosine (chirp) signal Chirp信号是一个典型的非平稳信号,在通信、声纳、雷达等领域具有广泛的应用, Chirp译名:啁啾(读音:“周纠”),是通信技术有关编码脉冲技术中的一种术语,是指对脉冲进行编码时,其载频在脉冲持续时间内线性地增加…

77GHz毫米波雷达快速chirp信号技术(一):测距原理

快速chirp信号指的是发射天线发射如下图所示信号: 单个chirp的解析式为 x ( t ) = s i n ( 2 ∗ p i ∗ ( f 0 + 0.5 ∗ S ∗ t ) . ∗ t ) x(t)=sin(2*pi*(f_0+0.5*S*t).*t) x(t)=sin(2∗pi∗(f0​+0.5∗S∗t).∗t)。 其中斜率 S S S达到 M H z / u s MHz/us MHz/us的数量级…

语音信号预处理3——计算原始chirp信号与滤波后chirp信号的相关性

写在前面&#xff1a;仅作为个人学习笔记&#xff0c;便于以后查阅&#xff0c;如对你有帮助&#xff0c;荣幸之至&#xff0c;如有错误&#xff0c;欢迎评论指正 编程软件&#xff1a;matlab R2018b 系统&#xff1a; win10 系列文章目录 chirp信号的生成与接收对接收到的c…

MATLAB学习笔记之chirp信号的产生

chirp信号即线性调频信号&#xff0c;是指瞬时频率随时间呈线性变化的信号。 chirp信号的matlab程序实现方法如下&#xff1a; 1.可利用matlab自带的chirp函数生成。 chirp&#xff08;t&#xff0c;f0&#xff0c;T&#xff0c;f1&#xff09;&#xff1b; T表示脉冲宽度&…