BUUCTF Crypto

MD5

将解压拿到的密文进行在线MD5解密即可得到flag

 拿到后包上flag{}即可 

一眼就解密 

拿到题目有提示是‘将下面的字符串解密后便能获得flag’

ZmxhZ3tUSEVfRkxBR19PRl9USElTX1NUUklOR30= 

我们可以发现这串像是BASE的密文然后用Base在线解密即可得到flag{THE_FLAG_OF_THIS_STRING}

Url编码 

拿到题目发现是一串密文

%66%6c%61%67%7b%61%6e%64%20%31%3d%31%7d

题目提示是Url编码,我们猜测该密文应该是url密文,我们搜索url编码在线解密,即可得到flag

 看我回旋踢

 题目没有给提示,但是给了一串类似flag的密文,我们可以猜测这是凯撒加密后得到的密文

凯撒加密原理
凯撒密码加密
凯撒密码的替换方法是通过排列明文和密文字母表,密文字母表示通过将明文字母表向左或向右移动一个固定数目的位置。例如,当偏移量是左移3的时候(解密时的密钥就是3):

明文字母表:ABCDEFGHIJKLMNOPQRSTUVWXYZ
密文字母表:DEFGHIJKLMNOPQRSTUVWXYZABC

使用时,加密者查找明文字母表中需要加密的消息中的每一个字母所在位置,并且写下密文字母表中对应的字母。需要解密的人则根据事先已知的密钥反过来操作,得到原来的明文。例如:

明文:THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG
密文:WKH TXLFN EURZQ IRA MXPSV RYHU WKH ODCB GRJ

 然后我们需要对照密文前4位与flag的ASCII码表进行对比,看看差了几位,左移还是右移,然后在线进行凯撒解密,本题是左移了13位。然后即可得到flag。

 

 摩丝

直接搜索莫斯密码在线解密即可得到flag

 

 flag{ILOVEYOU}

password

该题给了解题的主要信息

姓名:张三 
生日:19900315

key格式为key{xxxxxxxxxx}

接下来我们可以猜下密码,可以看到{}中有10个占位符,代表有密码有10位,题目又给了姓名和生日,可以猜测下简单密码------姓名首字母加生日的格式,这题刚好是这个形式。我们包上flag{}即可。zs19900315

变异凯撒 

我们可以发现密文前4位与flag的位移量每后移一位,偏移量加1,第一个的偏移量为5,有能力的可以写一个脚本,实力不足的可以搜索一个变异凯撒的解密脚本。下面是一个python脚本,然后是一个java 脚本,在线运行代码即可。

ciphertext = 'afZ_r9VYfScOeO_UL^RWUc'
j = 5
for i in ciphertext:
    print(chr(ord(i) + j), end='')
    j += 1
public class Caesar {
    public static void main(String[] args) {
        String ciphertext = "afZ_r9VYfScOeO_UL^RWUc";
        char[] plaintext = new char[ciphertext.length()];
        for(int i = 0; i < ciphertext.length(); i++){ //注意i是从0开始的,所以是5+i
            plaintext[i] = (char)(((int)ciphertext.charAt(i) + 5 + i) % 128);
        }
        for (char i: plaintext) {
            System.out.print(i);
        }
    }
}

 Quoted-printable

这一题就更简单了,根据提示直接搜索该编码类型,然后搜索在线解码工具即可得到flag。

http://www.metools.info/code/quotedprintable231.html(解码网站)

 

 但是我们还是要了解认识下该编码的!!!

任何一个8位的字节值可编码为3个字符:一个等号”=”后跟随两个十六进制数字(0–9或A–F)表示该字节的数值.例如,ASCII码换页符(十进制值为12)可以表示为”=0C”, 等号”=”(十进制值为61)必须表示为”=3D”. 除了可打印ASCII字符与换行符以外,所有字符必须表示为这种格式.

所有可打印ASCII字符(十进制值的范围为33到126)可用ASCII字符编码来直接表示, 但是等号”=”(十进制值为61)不可以这样直接表示.ASCII的水平制表符(tab)与空格符, 十进制为9和32, 如果不出现在行尾则可以用其ASCII字符编码直接表示。如果这两个字符出现在行尾,必须QP编码表示为”=09″ (tab)或”=20″ (space).

如果数据中包含有意义的行结束标志,必须转换为ASCII回车(CR)换行(LF)序列,既不能用原来的ASCII字符也不能用QP编码的”=”转义字符序列。 相反,如果字节值13与10有其它的不是行结束的含义,它们必须QP编码为=0D与=0A.

quoted-printable编码的数据的每行长度不能超过76个字符. 为满足此要求又不改变被编码文本,在QP编码结果的每行末尾加上软换行(soft line break). 即在每行末尾加上一个”=”, 但并不会出现在解码得到的文本中.

例如:If you believe that truth=beauty, then surely mathematics is the most beautiful branch of philosophy. 编码后结果是

If you believe that truth=3Dbeauty, then surely=20=
mathematics is the most beautiful branch of philosophy.
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值