Crypto入门 (七) Railfence (栏栅密码,正常型和W型)
前言:
Crypto中分三类,分别是编码、古典密码、现代密码,栏栅密码属于古典密码中得特殊移位密码,密钥只有 一个k,表示栏栅得长度。所谓栏栅密码就是将要加密得明文分成k个一组,然后取每组得第一个字符依次连接,拼接而成得字符串就是密文
Railfence:
题目:ccehgyaefnpeoobe{lcirg}epriec_ora_g,我们能在这串字符串中找到cyberpeace这个单词得每个字母,因此可以看出这是个移位密码,根据提示,我们查查看什么是栏栅密码
通过查到得资料我们了解到栏栅密码有两种,分别是https://baike.baidu.com/item/%E6%A0%85%E6%A0%8F%E5%AF%86%E7%A0%81 这篇文章给出得,正常得栏栅密码,其原理,按照密钥k分组然后拼接组成,具体请参考该链接。
还有一种是https://zh.wikipedia.org/wiki/%E7%B1%AC%E7%AC%86%E5%AF%86%E7%A2%BC%E6%B3%95,这种属于W型栏栅密码,下面介绍下这种W型栏栅密码原理:
加密
于W型栏栅密码中,明文由上至下顺序写上,当到达最低部时,再回头向上,一直重复直至整篇明文写完为止。然后,再往右顺序抄写一次。 此例子中,其包含了三条篱笆及一段明文:'WE ARE DISCOVERED. FLEE AT ONCE'。然后再按法抄下: W . . . E . . . C . . . R . . . L . . . T . . . E
. E . R . D . S . O . E . E . F . E . A . O . C .
. . A . . . I . . . V . . . D . . . E . . . N . .
读取后再按传统分组: WECRL TEERD SOEEF EAOCA IVDEN
了解了w型得原理后我们再来分析咱们这个,首先我们排除了正常型,为什么排除了正常型呢,我们可以使用网站或者自己写代码进行验证,今天有点事情,下次有机会补上普通型栏栅密码和W型栏栅密码得解码代码,现在给出两个链接,大家可以根据自己需求通过网站解码:
http://www.atoolbox.net/Tool.php?Id=777 (W型)
http://www.atoolbox.net/Tool.php?Id=855 (正常型)
下面给出我们这题W型分布
1 c c e h g
2 y a e f n p e o o
3 b e { l c i r g {
4 e p r i e c - o
5 r a - g
它是个五栏得,我们按照顺序走下来得出flag为cyberpeace{railfence-cipher-gogogo}
参考链接:
https://blog.csdn.net/shidonghang/article/details/102761090
https://blog.csdn.net/qq_43504939/article/details/98473847
https://blog.csdn.net/shidonghang/article/details/102761090
Crypto入门 (七) Railfence (栏栅密码,正常型和W型)的更多相关文章
- python小白入门基础(四:浮点型和布尔型)
# Number (int float bool complex)# (1) float 浮点型 也就是小数# 表达方式一floatvar = 0.98print(floatvar)print(typ ...
- 从零3D基础入门XNA 4.0(2)——模型和BasicEffect
[题外话] 上一篇文章介绍了3D开发基础与XNA开发程序的整体结构,以及使用Model类的Draw方法将模型绘制到屏幕上.本文接着上一篇文章继续,介绍XNA中模型的结构.BasicEffect的使用以 ...
- C#基础入门 七
C#基础入门 七 接口 由于C#语言不支持多重继承,所以可以使用接口模拟结构的继承,通过使用interface关键字,定义一个接口. interface USB { void Read(string[ ...
- Python爬虫入门七之正则表达式
在前面我们已经搞定了怎样获取页面的内容,不过还差一步,这么多杂乱的代码夹杂文字我们怎样把它提取出来整理呢?下面就开始介绍一个十分强大的工具,正则表达式! 1.了解正则表达式 正则表达式是对字符串操作的 ...
- 转 Python爬虫入门七之正则表达式
静觅 » Python爬虫入门七之正则表达式 1.了解正则表达式 正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符.及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串 ...
- Jmeter Web 性能测试入门 (七):Performance 测试中踩过 Jmeter 的坑
脚本运行的过程中,大量request抛error,但没有地方能够查看request是因为什么error的. 原因:Jmeter默认禁掉了运行过程中每个request的具体response信息收集,只保 ...
- python预科前三天:计算器知识、Python下载和安装、Pycharm下载安装激活设置、解释型和编译型、git、思维导图、显示隐藏文件、隐藏已知文件扩展名、创建组织、创建项目、提交作业、排BUG技巧
1.计算机组成结构:CPU.硬盘.内存.输入输出设备.主板.电源. 2.硬件之间的协作关系:是CPU运算完后给操作系统.专业术语叫指令. 3.键盘输入a之后发生的事情:键盘-CPU-操作系统-显卡-显 ...
- Python基本数据类型之整型和布尔型
整型和布尔型 获取对象的数据类型 1.type() 2.dir() 3.help() 4.在pycharm里面的操作 数字类型 int 创建: int() 接收数字字符串 .bit_lenght() ...
- 软件测试入门——测试模型(V型 W型 H型)
软件测试工程师称为“QA”,质量保证者——这是入门的第一点要学习的. 首先看基本的测试模型 1.“V”型 特点:[活动串行]这是一种古老的瀑布模型,反映了实际和测试之间的关系. 局限:仅仅把测试过程作 ...
- HotSpot关联规则算法(2)-- 挖掘连续型和离散型数据
本篇代码可在 http://download.csdn.net/detail/fansy1990/8502323下载. 前篇<HotSpot关联规则算法(1)-- 挖掘离散型数据>分析了离 ...
随机推荐
- 如何使用css绘制三角形
背景 用迪卡侬官方主页进行页面练习,发现头部导航栏需要使用到梯形 分析 图形分解 通过图片我们可以发现该梯形可以分解成一个长方形和一个直角三角形,长方形:110*65:直角三角形:11*65(底边*另 ...
- Docker 使用阿里云加速拉取官方镜像
首先登陆阿里云容器镜像服务控制台,在左侧导航栏选择镜像工具 > 镜像加速器,在镜像加速器页面获取镜像加速地址. 例如: 加速器地址:[系统分配前缀].mirror.aliyuncs.com 配置 ...
- goland使用go mod模式
使用go mod之后,想要在goland中有代码提示,有两种方式,一种是使用gopath下的goimport工具,另一种是使用gomod自身的管理工具 我是用的是非gopath的方式,每次新建项目后总 ...
- SAP管理员SAP*和DDIC被锁定后如何解锁或重置密码
SAP*初始化密码是06071992或passDDIC默认密码为19920706 环境信息:win server2003,SQL Server2008 R2 账号信息存在于数据库usr02表中,1.删 ...
- 1.Easy Touch 3.1
Easy Touch 3.1 Hedgehog Team(导入 Easy Touch 插件时自动在菜单栏) Extensions: 拓展 Adding a new joytick: 虚拟摇杆 Addi ...
- HttpClient psot和get请求
private String backAllUserInfo(String uid) throws IOException { //this.setInterfaceurl("/idm/js ...
- 89. 格雷编码 (Medium)
问题描述 89. 格雷编码 (Medium) n 位格雷码序列 是一个由 2ⁿ 个整数组成的序列,其中: 每个整数都在范围 [0, 2ⁿ - 1] 内(含 0 和 2ⁿ - 1) 第一个整数是 0 一 ...
- 【C学习笔记】day1-2 输出乘法口诀表
#include<stdio.h> int main() { for (int m = 1; m <= 9; m++) for (int n = 1; n <= m; n++) ...
- JAVASCRIPT 对有符号整型、无符号整型、浮点型、十六进制、二进制的数据处理
1.十六进制字符串转有符号整型,支持S8.S16.S32: function hexToInt(hex) { if(hex.length % 2 != 0) { hex = "0" ...
- vue项目element-ui组件打包后组件显示方框解决方式
在 utils.js文件添加一句代码 publicPath:'../../',