CTF crypto(一)一些简单的编码与加密

Base64

用于http环境下传递较长的标识信息

基本规则

  1. 把每三个八位字节变成四个六位字节,每个字节高位增添两个0,例子如下所示:
    01111001 01101111 01110101
    011110 010110 111101 110101
    00011110 00010110 00111101 00110101
    再根据Base64字母表得到如下字符
    e W 9 1
  2. 每76个字符加一个换行符
  3. 处理最后结束符
    在最后结束的时候并不能凑齐三个字节,则采取’='符号补足转换后未被补全的四个字节

变种

URL改进Base64编码,在末尾填充’=‘号,并将标准编码中的’+‘和’/‘号改成’-‘和’_’,从而免去URL编解码和数据库存储所要做的转换。
正则表达式的改进将’+‘和’/‘改成了’!‘和’-’

幂数加密

非常简单的一种加密方式,英文字母一共26个那么由2的0、1、2、3、4次幂就可以表示31个单元,通过二进制幂来表示字母序号加密。
15 = 2 0 + 2 1 + 2 2 + 2 3 15=2^0+2^1+2^2+2^3 15=20+21+22+23,那么因为O这个字母位于字母表第15位,于是其就可以用二进制幂数0123来加密表示。

栅栏密码

普通栅栏

将明文密码分成N个一组,然后从每组第一个字开始,将每组的相同位置的字连起来,最后形成一段无意义的话。
如Ilovebutdontknow分成4个字母一组
Ilov ebut dont know
然后从每组第一个字开始,将每组的相同位置的字连起来。
ledk lbon ouno vttw
最后形成一段无意义的话
ledklbonounovttw

W型

对字符串loveuloveu进行分组时形成如下W型格式
I . . . u . . . e .
. o . e . l . v . u
. . v . . . o . . .
然后将它链接起来形成如下字符串lueoelvuvo
通过编写代码解密,或者如下网址解密http://www.atoolbox.net/Tool.php?Id=777

培根密码

一种用a,b两个字母来代替其他字母的隐写术。
每个字母对应5个 a , b a,b a,b构成的一组字母,如A/a - aaaaa

猜你喜欢

转载自blog.csdn.net/eliforsharon/article/details/118907263