编码方式_【每日一题】| 常见的编码方式之栅栏密码
栅栏密码(Rail-fence Cipher)就是把要加密的明文分成N个字一组,然后把每组的第1个字符组合,每组第2个字符组合…每组的第N(最后一个分组可能不足N个)个字符组合,最后把他们全部连接起来就是密文。
02加密步骤
我们以“I LOVE CTF”为例进行n=2的栅栏加密:
① 去掉空格,得到ILOVECTF.
② 因为n=2,所以我们以两个字母为一组,总共分成4组得到IL OV EC TF
③ 依次读取每组的第一个字母:IOET。完成后,再读取每组第二个字母:LVCF
④ 最后把这两列新得到的字符串组合在一起即完成加密:IOETLVCF
我们再以"Through love comes calm and through calm comes thought"进行n=5的加密:
首先去掉空格和逗号,然后依次以5个为一行可得下方阵列:
t h r o u
g h l o v
e c o m e
s c a l m
a n d t h
r o u g h
c a l m c
d m e s t
h o u g h
t
注意:由于分组的原因,最后一行只有第一列有字母为T,后四列为空。
然后我们依次读取第一列到第五列的字母,然后重新组合即完成加密。
密文:tgesarcohthhccnoamorloaduleuoomltgmsguvemhhcth
03解密步骤
通过以上两个例子,想必你已经掌握了栅栏密码的加密原理,所以我们可以通过逆推得到根据一串密文去还原原文的方法:
以"hltodeofrlcwl"(n=3)为例进行解密:
首先要还原为原文的加密阵列,还原时把密文依次按列来放置即可。一共有13个字母,13/3=4...1 可见要构建一个3列5行的阵列。
但是注意,我们发现还余1,说明原文(也是13个字母)在进行加密时,最后一行只有第一列是有字母的,最后一行后几列都为空,所以我们在还原原文的加密阵列时,第一列要有5个字母,往后的几列只要4个字母即可。如下图所示:
所以可得原文:helloctfworld
如果不想这么麻烦:这个网站满足你:https://www.qqxiuzi.cn/bianma/zhalanmima.php
04每日一题
小鱼:来吧!!!下一个灯谜:
请解密wcemteojcflmnc,n=3.
提交形式:flag{...}
先在草稿纸上做一遍,再用网站哦!!!
CTF欢迎你!!!长按识别关注我们。
编码方式_【每日一题】| 常见的编码方式之栅栏密码相关推荐
- python转换字符编码_转:Python常见字符编码及其之间的转换
一.Python常见字符编码 字符编码的常用种类介绍 第一种:ASCII码 ASCII(American Standard Code for Information Interchange,美国信息交 ...
- 防抖 节流_每日一题手写函数防抖与节流
关注"前端学苑" ,坚持每天进步一点点 「~函数防抖与节流 ~」 每日一题,希望让爱学习.思考的前端技术伙伴在一起学习.复盘.成长. 基础知识要夯实,原理源码要深入,深度广度要扩展 ...
- 和与余数的和同余理解_每日一题 | 第38期:数量关系之余数特性
从今天起"每日一题"栏目就正式更新啦~ 由福瑞和教育的主讲老师 每天给大家带来公考不同考试版块的干货资料! 旨在潜移默化中给大家培养公考解题思维,提高做题速度! 大家遇到不明白的题 ...
- resize函数_每日一题手写函数防抖与节流
关注"前端学苑" ,坚持每天进步一点点 「~函数防抖与节流 ~」 每日一题,希望让爱学习.思考的前端技术伙伴在一起学习.复盘.成长. 基础知识要夯实,原理源码要深入,深度广度要扩展 ...
- 山体等高线怎么看_每日一题 | 此处向斜山,你看出来了吗?
每日一题 | 此处向斜山,你看出来了吗? (2018·江苏高考)如图为某区域地质简图.该区沉积地层有Q.P.C.D.S2.S1,其年代依次变老.读图回答1-2题. 1.从甲地到乙地的地形地质剖面示意图 ...
- python安全编码问题_浅谈Python中的编码问题
对于Python的初学者来说,编码问题相当令人头疼.本文就根据我在学习过程中遇到的问题简单谈一下Python中的编码.首先简单介绍一下几种常见的编码. 一.几种常见的字符编码 ASCII码 ASCII ...
- 【编码错误】新手程序员常见的编码错误
新手程序员常见的编码错误 文章目录 前言 一.没有了解需求就开始写代码 二.不沟通交流就开始做需求 三.代码素养差 四.编码问题总结 4.0不注重代码格式 4.0.1空格 4.0.2换行 4.1随意命 ...
- mysql 查询编码转换_字符集介绍及mysql数据库编码转换
一.字符集介绍: 1.ASCII ASCII是英文American Standard Code for Information Interchange的缩写,美国标准信息交换代码是由美国国家标准学会( ...
- 依赖注入的三种方式_一起学Spring之三种注入方式及集合类型注入
本文主要讲解Spring开发中三种不同的注入方式,以及集合数据类型的注入,仅供学习分享使用,如有不足之处,还请指正. 概述 Spring的注入方式一共有三种,如下所示: 通过set属性进行注入,即通过 ...
- 详解python运行三种方式_详解python运行三种方式
方式一 交互式编程 交互式编程不需要创建脚本文件,是通过 Python 解释器的交互模式进来编写代码. linux上你只需要在命令行中输入 Python 命令即可启动交互式编程,提示窗口如下: $ p ...
最新文章
- Maven-学习笔记05【基础-使用骨架创建Maven的Java工程】
- 每天一道LeetCode-----两个有序数组合并后的第K个数
- Java 8系列之重新认识HashMap(转载自美团点评技术团队)
- 什么是 ABAP Field Symbol
- layer的msg函数_layer弹出信息框API
- 对损失函数的总结(持续更新)
- Django 之 modelForm (edit.html页面的编写)
- 尾气冒黑烟是什么问题_烟囱里冒得白烟、黑烟、黄烟有什么危害?
- [Office一般性操作] 关闭Outlook重定向
- Oracle技术之串行隔离对延迟段和INTERVAL分区的支持
- mysql的txid是什么_mysql-存储引擎
- 如何让win7像win10一样漂亮-win7美化
- python中for循环的用法a+aa+aaa-Python练习题 013:求解a+aa+aaa……
- 标准化建站开拓者王征,教你搭建一个有用的品牌官网
- android 系统安装教程视频,PC也能用安卓 X86系统装安卓视频教程
- 使用Python,SMTP发邮件到qq邮箱(文本/超链接/图片/表格/附件表格)
- html数独游戏制作,使用HTML5和ES6(JS)实现的在线数独游戏生成器和解答
- 深信服设备连接linux,deepin官方论坛-深度科技官网旗下网站
- css竖向箭头符号_如何用css实现三角形符号代码
- 翻译:Pong Game Tutorial
热门文章
- android 组件化_Android 组件化路由框架设计(仿Arouter)
- ddns客户端_DDNS哪家最方便?试试看Mikrotik的ROS!
- android透明像素效率,android-非透明像素上的ImageView ColorFilter.夹
- python 定义变量_第三章(第2节):变量和常量
- python gui开发_python 开发GUI应用之Dabo
- termcap-1.3.1的configure.in文件逐行分析
- python中for和while可以有else_Python 中的for,if-else和while语句
- C#打开文件和文件夹
- Dynamics 365 On-premises和Online 的不同
- Microsoft Visual Studio 文件识别及其用途简述