实验一:常见哈希和编码的识别与破解

一、实验目的

考查信息论与编码及密码学相关知识点,掌握 ASCII 编码、URL 编码、Unicode 编码、Base64 编码、MD5 反查等相关知识

二、实验题目

2.1 识别编码方式并解码

识别以下内容的编码方式,并解码获得原内容

提示:前三项原内容长度为 32 字符,第四项原内容长度为 64 字符

2.1.1 第一题
110, 115, 88, 74, 83, 117, 78, 108, 75, 69, 90, 109, 49, 104, 90, 89, 72, 120, 117, 77, 66, 101, 55, 82, 53, 77, 99, 88, 78, 67, 81, 81

这题不难看出来是ASCII编码,可以利用以下脚本执行即可解之

sc = [110, 115, 88, 74, 83, 117, 78, 108, 75, 69, 90, 109, 49, 104, 90, 89, 72, 120, 117, 77, 66, 101, 55, 82, 53, 77, 99, 88, 78, 67, 81, 81]
for i in sc:
    print(chr(i),end="")

获得原内容

nsXJSuNlKEZm1hZYHxuMBe7R5McXNCQQ
2.1.2 第二题
%4a%6a%44%30%36%64%72%36%55%47%4c%70%64%64%33%32%4b%74%38%32%52%63%4d%75%76%75%69%39%62%70%51%34

这题不难看出来是URL编码,可以利用以下脚本执行即可解之

from urllib.parse import unquote
sc = "%4a%6a%44%30%36%64%72%36%55%47%4c%70%64%64%33%32%4b%74%38%32%52%63%4d%75%76%75%69%39%62%70%51%34"
print(unquote(sc))

获得原内容

JjD06dr6UGLpdd32Kt82RcMuvui9bpQ4
2.1.3 第三题
\u0036\u0065\u0069\u0072\u0064\u0078\u0043\u0059\u0076\u0056\u0074\u0061\u0051\u0070\u006d\u0036\u0034\u0044\u0070\u0066\u0057\u0045\u0067\u0061\u0031\u0063\u004a\u0062\u0075\u0053\u0070\u0030

这题不难看出来是Unicode编码,可以利用以下脚本执行即可解之

sc = b'\u0036\u0065\u0069\u0072\u0064\u0078\u0043\u0059\u0076\u0056\u0074\u0061\u0051\u0070\u006d\u0036\u0034\u0044\u0070\u0066\u0057\u0045\u0067\u0061\u0031\u0063\u004a\u0062\u0075\u0053\u0070\u0030'
print(sc.decode('unicode_escape'))

获得原内容

6eirdxCYvVtaQpm64DpfWEga1cJbuSp0
2.1.4 第四题
dTAwZWlRenpCMkdJYmJnWVRNeTJGMnVvVzdRazVVc3VNR1JTMHZjRGFnR3lNdXlaSlNIZEs5dkpsZGNnQWp3QQ==

这题不难看出来是Base64编码,可以利用以下脚本执行即可解之

import base64
sc = b'dTAwZWlRenpCMkdJYmJnWVRNeTJGMnVvVzdRazVVc3VNR1JTMHZjRGFnR3lNdXlaSlNIZEs5dkpsZGNnQWp3QQ=='
print(str(base64.b64decode(sc), "utf-8"))

获得原内容

u00eiQzzB2GIbbgYTMy2F2uoW7Qk5UsuMGRS0vcDagGyMuyZJSHdK9vJldcgAjwA

2.2 识别哈希算法并获取原内容

de2e0bb61b2d5bb4d6af9ec01ed5c323
369a1b5e2e79bdf007bdff3c30ed139442067e40

根据字符长度可知第一个为md5,解出可得

ZsmuKd

根据字符长度可知第一个为SHA1,解出可得

241337

2.3 综合

将以下字符串还原为原内容

U2xSU2JFcFVVVEJLVkZrMFNsUkthVXBVVW0xS1ZGVXdTbFJhYWtwVVNtbEtWRkpzU2xSUk1FcFVXVFJLVkVwcFNsUlNiRXBVVVRCS1ZGcHFTbFJLYVVwVVVteEtWRlV3U2xSUmVVcFVTbWxLVkZKc1NsUlJNRXBVV1RSS1ZFcHBTbFJTYlVwVVZUQktWRnBxU2xSS2FVcFVVbXhLVkZVd1NsUlNhRXBVU21sS1ZGSnNTbFJWTUVwVVVUSktWRXBwU2xSU2JFcFVVVEJLVkZwcVNsUkthVXBVVW10S1ZGVXdTbFJSZUVwVVl6TktWRmt5U2xSYWFFcFVXbWxLVkUwd1NsUlpNa3BVV21oS1ZGVXhTbFJrYUVwVVdUSktWRnBvU2xSUk1VcFVZek5LVkZKclNsUlJORXBVVFRCS1ZHTTBTbFJTYTBwVVVUQktWRkV5U2xSS2FVcFVVbXRLVkZVd1NsUlJlRXBVWXpWS1ZGa3lTbFJhYUVwVVdtbEtWRTB4U2xSWk1rcFVXbWhLVkZFeFNsUmpNMHBVVW10S1ZGRTBTbFJOTUVwVVl6UktWRkpyU2xSUk1FcFVVbWhLVkVwcFNsUlNiRXBVVlRCS1ZGSm9TbFJLYVVwVVVtMUtWRlV3U2xSYWFrcFVTbWxLVkZKdFNsUlZNRXBVV1RSS1ZFcHBTbFJTYkVwVVVUQktWRnBxU2xSS2FVcFVVbXhLVkZFd1NsUlpORXBVU21sS1ZGSnNTbFJSTUVwVVdtcEtWRXBwU2xSU2JFcFVWVEJLVkZWNVNsUkthVXBVVW14S1ZGVXdTbFJXYUVwVVNtbEtWRkpzU2xSVk1FcFVWWGxLVkVwcFNsUlNiRXBVVlRCS1ZGRXlTbFJLYVVwVVVtdEtWRlV3U2xSUmVFcFVZek5LVkZreVNsUmFhRXBVVlRGS1ZHUm9TbFJaTWtwVVdtaEtWRlV4U2xSTmQwcFVXVEpLVkZrelNsUk9hMHBVVG1zPQ==

首先第一遍解码得到

SlRSbEpUUTBKVFk0SlRKaUpUUm1KVFUwSlRaakpUSmlKVFJsSlRRMEpUWTRKVEppSlRSbEpUUTBKVFpqSlRKaUpUUmxKVFUwSlRReUpUSmlKVFJsSlRRMEpUWTRKVEppSlRSbUpUVTBKVFpqSlRKaUpUUmxKVFUwSlRSaEpUSmlKVFJsSlRVMEpUUTJKVEppSlRSbEpUUTBKVFpqSlRKaUpUUmtKVFUwSlRReEpUYzNKVFkySlRaaEpUWmlKVE0wSlRZMkpUWmhKVFUxSlRkaEpUWTJKVFpoSlRRMUpUYzNKVFJrSlRRNEpUTTBKVGM0SlRSa0pUUTBKVFEySlRKaUpUUmtKVFUwSlRReEpUYzVKVFkySlRaaEpUWmlKVE0xSlRZMkpUWmhKVFExSlRjM0pUUmtKVFE0SlRNMEpUYzRKVFJrSlRRMEpUUmhKVEppSlRSbEpUVTBKVFJoSlRKaUpUUm1KVFUwSlRaakpUSmlKVFJtSlRVMEpUWTRKVEppSlRSbEpUUTBKVFpqSlRKaUpUUmxKVFEwSlRZNEpUSmlKVFJsSlRRMEpUWmpKVEppSlRSbEpUVTBKVFV5SlRKaUpUUmxKVFUwSlRWaEpUSmlKVFJsSlRVMEpUVXlKVEppSlRSbEpUVTBKVFEySlRKaUpUUmtKVFUwSlRReEpUYzNKVFkySlRaaEpUVTFKVGRoSlRZMkpUWmhKVFUxSlRNd0pUWTJKVFkzSlROa0pUTms=

可以识别出依然为Base64编码,然后再解码

JTRlJTQ0JTY4JTJiJTRmJTU0JTZjJTJiJTRlJTQ0JTY4JTJiJTRlJTQ0JTZjJTJiJTRlJTU0JTQyJTJiJTRlJTQ0JTY4JTJiJTRmJTU0JTZjJTJiJTRlJTU0JTRhJTJiJTRlJTU0JTQ2JTJiJTRlJTQ0JTZjJTJiJTRkJTU0JTQxJTc3JTY2JTZhJTZiJTM0JTY2JTZhJTU1JTdhJTY2JTZhJTQ1JTc3JTRkJTQ4JTM0JTc4JTRkJTQ0JTQ2JTJiJTRkJTU0JTQxJTc5JTY2JTZhJTZiJTM1JTY2JTZhJTQ1JTc3JTRkJTQ4JTM0JTc4JTRkJTQ0JTRhJTJiJTRlJTU0JTRhJTJiJTRmJTU0JTZjJTJiJTRmJTU0JTY4JTJiJTRlJTQ0JTZjJTJiJTRlJTQ0JTY4JTJiJTRlJTQ0JTZjJTJiJTRlJTU0JTUyJTJiJTRlJTU0JTVhJTJiJTRlJTU0JTUyJTJiJTRlJTU0JTQ2JTJiJTRkJTU0JTQxJTc3JTY2JTZhJTU1JTdhJTY2JTZhJTU1JTMwJTY2JTY3JTNkJTNk

可以解码得到

%4e%44%68%2b%4f%54%6c%2b%4e%44%68%2b%4e%44%6c%2b%4e%54%42%2b%4e%44%68%2b%4f%54%6c%2b%4e%54%4a%2b%4e%54%46%2b%4e%44%6c%2b%4d%54%41%77%66%6a%6b%34%66%6a%55%7a%66%6a%45%77%4d%48%34%78%4d%44%46%2b%4d%54%41%79%66%6a%6b%35%66%6a%45%77%4d%48%34%78%4d%44%4a%2b%4e%54%4a%2b%4f%54%6c%2b%4f%54%68%2b%4e%44%6c%2b%4e%44%68%2b%4e%44%6c%2b%4e%54%52%2b%4e%54%5a%2b%4e%54%52%2b%4e%54%46%2b%4d%54%41%77%66%6a%55%7a%66%6a%55%30%66%67%3d%3d

可以识别出是URL编码,然后再解码

NDh+OTl+NDh+NDl+NTB+NDh+OTl+NTJ+NTF+NDl+MTAwfjk4fjUzfjEwMH4xMDF+MTAyfjk5fjEwMH4xMDJ+NTJ+OTl+OTh+NDl+NDh+NDl+NTR+NTZ+NTR+NTF+MTAwfjUzfjU0fg==

可以识别出是Base64编码,然后再解码是

48~99~48~49~50~48~99~52~51~49~100~98~53~100~101~102~99~100~102~52~99~98~49~48~49~54~56~54~51~100~53~54~

可以发现是ASCII编码,然后再解码

0c0120c431db5defcdf4cb1016863d56

可以发现是md5编码,然后再解码

376620072

可以发现是一个QQ群的群号

三、实验环境

连接 Internet 的主机

四、参考资料

  • http://byd.dropsec.xyz/2016/05/25/CTF之加解密总结/
  • https://juejin.im/post/5d736acee51d4561da6201b7#heading-5
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值