CTF_密码学栅栏密码点击上方蓝字 发现更多精彩01简介

栅栏密码(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欢迎你!!!长按识别关注我们。

编码方式_【每日一题】| 常见的编码方式之栅栏密码相关推荐

  1. python转换字符编码_转:Python常见字符编码及其之间的转换

    一.Python常见字符编码 字符编码的常用种类介绍 第一种:ASCII码 ASCII(American Standard Code for Information Interchange,美国信息交 ...

  2. 防抖 节流_每日一题手写函数防抖与节流

    关注"前端学苑" ,坚持每天进步一点点 「~函数防抖与节流 ~」 每日一题,希望让爱学习.思考的前端技术伙伴在一起学习.复盘.成长. 基础知识要夯实,原理源码要深入,深度广度要扩展 ...

  3. 和与余数的和同余理解_每日一题 | 第38期:数量关系之余数特性

    从今天起"每日一题"栏目就正式更新啦~ 由福瑞和教育的主讲老师 每天给大家带来公考不同考试版块的干货资料! 旨在潜移默化中给大家培养公考解题思维,提高做题速度! 大家遇到不明白的题 ...

  4. resize函数_每日一题手写函数防抖与节流

    关注"前端学苑" ,坚持每天进步一点点 「~函数防抖与节流 ~」 每日一题,希望让爱学习.思考的前端技术伙伴在一起学习.复盘.成长. 基础知识要夯实,原理源码要深入,深度广度要扩展 ...

  5. 山体等高线怎么看_每日一题 | 此处向斜山,你看出来了吗?

    每日一题 | 此处向斜山,你看出来了吗? (2018·江苏高考)如图为某区域地质简图.该区沉积地层有Q.P.C.D.S2.S1,其年代依次变老.读图回答1-2题. 1.从甲地到乙地的地形地质剖面示意图 ...

  6. python安全编码问题_浅谈Python中的编码问题

    对于Python的初学者来说,编码问题相当令人头疼.本文就根据我在学习过程中遇到的问题简单谈一下Python中的编码.首先简单介绍一下几种常见的编码. 一.几种常见的字符编码 ASCII码 ASCII ...

  7. 【编码错误】新手程序员常见的编码错误

    新手程序员常见的编码错误 文章目录 前言 一.没有了解需求就开始写代码 二.不沟通交流就开始做需求 三.代码素养差 四.编码问题总结 4.0不注重代码格式 4.0.1空格 4.0.2换行 4.1随意命 ...

  8. mysql 查询编码转换_字符集介绍及mysql数据库编码转换

    一.字符集介绍: 1.ASCII ASCII是英文American Standard Code for Information Interchange的缩写,美国标准信息交换代码是由美国国家标准学会( ...

  9. 依赖注入的三种方式_一起学Spring之三种注入方式及集合类型注入

    本文主要讲解Spring开发中三种不同的注入方式,以及集合数据类型的注入,仅供学习分享使用,如有不足之处,还请指正. 概述 Spring的注入方式一共有三种,如下所示: 通过set属性进行注入,即通过 ...

  10. 详解python运行三种方式_详解python运行三种方式

    方式一 交互式编程 交互式编程不需要创建脚本文件,是通过 Python 解释器的交互模式进来编写代码. linux上你只需要在命令行中输入 Python 命令即可启动交互式编程,提示窗口如下: $ p ...

最新文章

  1. Maven-学习笔记05【基础-使用骨架创建Maven的Java工程】
  2. 每天一道LeetCode-----两个有序数组合并后的第K个数
  3. Java 8系列之重新认识HashMap(转载自美团点评技术团队)
  4. 什么是 ABAP Field Symbol
  5. layer的msg函数_layer弹出信息框API
  6. 对损失函数的总结(持续更新)
  7. Django 之 modelForm (edit.html页面的编写)
  8. 尾气冒黑烟是什么问题_烟囱里冒得白烟、黑烟、黄烟有什么危害?
  9. [Office一般性操作] 关闭Outlook重定向
  10. Oracle技术之串行隔离对延迟段和INTERVAL分区的支持
  11. mysql的txid是什么_mysql-存储引擎
  12. 如何让win7像win10一样漂亮-win7美化
  13. python中for循环的用法a+aa+aaa-Python练习题 013:求解a+aa+aaa……
  14. 标准化建站开拓者王征,教你搭建一个有用的品牌官网
  15. android 系统安装教程视频,PC也能用安卓 X86系统装安卓视频教程
  16. 使用Python,SMTP发邮件到qq邮箱(文本/超链接/图片/表格/附件表格)
  17. html数独游戏制作,使用HTML5和ES6(JS)实现的在线数独游戏生成器和解答
  18. 深信服设备连接linux,deepin官方论坛-深度科技官网旗下网站
  19. css竖向箭头符号_如何用css实现三角形符号代码
  20. 翻译:Pong Game Tutorial

热门文章

  1. android 组件化_Android 组件化路由框架设计(仿Arouter)
  2. ddns客户端_DDNS哪家最方便?试试看Mikrotik的ROS!
  3. android透明像素效率,android-非透明像素上的ImageView ColorFilter.夹
  4. python 定义变量_第三章(第2节):变量和常量
  5. python gui开发_python 开发GUI应用之Dabo
  6. termcap-1.3.1的configure.in文件逐行分析
  7. python中for和while可以有else_Python 中的for,if-else和while语句
  8. C#打开文件和文件夹
  9. Dynamics 365 On-premises和Online 的不同
  10. Microsoft Visual Studio 文件识别及其用途简述