培根密码
原理
培根密码使用两种不同的字体,代表 A 和 B,结合加密表进行加解密。
a | AAAAA | g | AABBA | n | ABBAA | t | BAABA |
---|---|---|---|---|---|---|---|
b | AAAAB | h | AABBB | o | ABBAB | u-v | BAABB |
c | AAABA | i-j | ABAAA | p | ABBBA | w | BABAA |
d | AAABB | k | ABAAB | q | ABBBB | x | BABAB |
e | AABAA | l | ABABA | r | BAAAA | y | BABBA |
f | AABAB | m | ABABB | s | BAAAB | z | BABBB |
上面的是常用的加密表。还有另外的一种加密表,可认为是将 26 个字母从 0 到 25 排序,以二进制表示,A 代表 0,B 代表 1。
下面这一段内容就是明文 steganography 加密后的内容,正常字体是 A,粗体是 B:
To encode a message each letter of the plaintext is replaced by a group of five of the letters \'A\' or \'B\'.
可以看到,培根密码主要有以下特点
- 只有两种字符
- 每一段的长度为 5
- 加密内容会有特殊的字体之分,亦或者大小写之分。
网站
栅栏密码
原理
栅栏密码把要加密的明文分成 N 个一组,然后把每组的第 1 个字连起来,形成一段无规律的话。这里给出一个例子
明文:THERE IS A CIPHER
去掉空格后变为
THEREISACIPHER
分成两栏,两个一组得到
TH ER EI SA CI PH ER
先取出第一个字母,再取出第二个字母
TEESCPE
HRIAIHR
连在一起就是
TEESCPEHRIAIHR
脚本
# -*- coding:utf-8 -*- import re def encrypt(s,n): s = s.replace(\' \',\'\') # 分成n个一组的列表 box = re.findall(r\'.{%d}\'%n,s) # 不足n个的也为一组 if len(box) * n < len(s): box.append(s[len(box)*n:]) enc = [] k = 0 for i in range(n): enc.extend([x[k] for x in box if k < len(x)]) k = k + 1 print (\'\'.join(enc)) def decrypt(s,n): num = len(s) // n if len(s) % n != 0: num += 1 tmp = re.findall(r\'.{%d}\'%num,s) if len(tmp) * num < len(s): tmp.append(s[len(tmp) * num:]) box = [\'\' for x in range(num)] for Str in tmp: for index,S in enumerate(Str): box[index] += S print (\'\'.join(box)) if __name__ == \'__main__\': s = "THERE IS A CIPHER" n = 5 s1 = "TIPHSHEAERCREI" encrypt(s,n) decrypt(s1,n)
猪圈密码
原理
猪圈密码是一种以格子为基础的简单替代式密码,格子如下
我们举一个例子,如明文为 X marks the spot ,那么密文如下
解密网站
http://www.metools.info/code/c90.html
键盘密码
手机键盘密码
手机键盘加密方式,是每个数字键上有 3-4 个字母,用两位数字来表示字母,例如:ru 用手机键盘表示就是:7382,那么这里就可以知道了,手机键盘加密方式不可能用 1 开头,第二位数字不可能超过 4,解密的时候参考此
关于手机键盘加密还有另一种方式,就是「音的」式(这一点可能根据手机的不同会有所不同),具体参照手机键盘来打,例如:「数字」表示出来就是:748 94。在手机键盘上面按下这几个数,就会出:「数字」的拼音。
电脑键盘棋盘
电脑键盘棋盘加密,利用了电脑的棋盘方阵。
电脑键盘坐标
电脑键盘坐标加密,利用键盘上面的字母行和数字行来加密,例:bye 用电脑键盘 XY 表示就是:351613
电脑键盘 QWE
电脑键盘 QWE 加密法,就是用字母表替换键盘上面的排列顺序。
键盘布局加密
简单地说就是根据给定的字符在键盘上的样子来进行加密。
0CTF 2014 classic
小丁丁发现自己置身于一个诡异的房间,面前只有一扇刻着奇怪字符的门。 他发现门边上还有一道密码锁,似乎要输入密码才能开门。。4esxcft5 rdcvgt 6tfc78uhg 098ukmnb
相当于在键盘上绘图:0ops
2017 年 xman 选拔赛——一二三,木头人
我数 123 木头人,再不行动就要被扣分。
23731263111628163518122316391715262121
密码格式 xman{flag}
题目中有很明显的提示 123,那么就自然需要联想到键盘密码中电脑键盘坐标密码,可以发现前几个数字第二个数字都是 1-3 范围内的,也验证了我们的猜测。于是
23-x
73-m
12-a
63-n
111-{
得到解:xman{hintisenough}