密码必须至少为6个字符_【每日一题】| 常见的编码方式之栅栏密码

CTF_密码学栅栏密码点击上方蓝字 发现更多精彩 6fe72f9f28846daffee0aa3c24fbf6d6.png0 1简介

栅栏密码(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个字母即可。如下图所示:

4f2907312ef6adf870314ec263bf4d32.png

所以可得原文:helloctfworld

如果不想这么麻烦:这个网站满足你:https://www.qqxiuzi.cn/bianma/zhalanmima.php

04每日一题

小鱼:来吧!!!下一个灯谜:

请解密wcemteojcflmnc,n=3.

提交形式:flag{...}

先在草稿纸上做一遍,再用网站哦!!!

5b32abbff234da4e3a814bc4d146f1e0.png 6fe72f9f28846daffee0aa3c24fbf6d6.pngCTF欢迎你!!!长按识别关注我们。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值