crypto-writeup

  • 数据库密码

题目描述:

数据库密码经由md5加密后存储,md5字串长度为32个字符(128位),但题目中给的是35位仔细观察发现,字母Q、X、V并不是md5值所包含的字母,去除后刚好32个字符(128位),修改后的字串在网站上在线解密,得到flag:

  • rot大法好

题目描述:

没有什么特殊的,直接rot13解密:

解密后发现是逆序,倒过来就是flag:

  •  奇怪的汉字

题目描述:

明显的当铺密码(题目描述也有提示),在线解密:

本题汉字不是很多,数值也可以直接数出来,将得到的数转码即得到flag:

  • 就是这个feel 

题目描述:

疑似摩斯电码,将恰转变为1(-),绑转变为0(.),尝试脚本解一下:

#!/usr/bin/python
# -*- coding: UTF-8 -*-
def decode(a):
    plain_text=''
    s = a.split(" ")
    dict = {
            '.-':'A','-...':'B','-.-.':'C','-..':'D','.':'E','..-.':'F','--.':'G','....':'H',
            '..':'I','.---':'J','-.-':'K','.-..':'L','--':'M','-.':'N','---':'O','.--.':'P',
            '--.-':'Q','.-.':'R','...':'S','-':'T','..-':'U','...-':'V','.--':'W','-..-':'X',
            '-.--':'Y','--..':'Z','.----':'1','..---':'2','...--':'3','....-':'4','.....':'5',
            '-....':'6','--...':'7','---..':'8','----.':'9','-----':'0','..--..':'?','-..-.':'/',
            '-.--.-':'()','-....-':'-','.-.-.-':'.'
            };
    for item in s:
        plain_text+=dict[item]
    return plain_text
str1='11 111 1010 1 0010 110 111 111 100'
cipher_text=''
for i in str1:
    try:
        if i==' ':
            cipher_text+=i
        else:
            if i=='1':
                cipher_text+='-'
            elif i=='0':
                cipher_text+="."
    except Exception as err:
        print(err)
print(decode(cipher_text).lower())

得到flag(加上{})即可:

  • 贝斯族谱
Vm0weGQxSXlSblJWV0d4WFlUSm9WRll3WkRSV01XeHlXa1pPYUZKc1NsWldSM1JQVmpGS2RHVkVRbFZXYkhCUVdWZHplRll4VG5OWGJGcFhaV3RhU1ZkV1kzaFRNVTVYVW01S2FGSnRhRzlVVm1oRFZWWmFjbHBFVWxSaVZrWTFWa2QwYTJGc1NuUlZiRkphWWtkU2RscFdXbXRXTVZaeVdrWndWMkV6UWpaV01uUnZWakZhZEZOc1dsaGlSMmhvVm1wT2IxTXhjRmhsUjBaWFlrZFNlVll5ZUVOV01rVjNZMFpTVjFaV2NGTmFSRVpEVld4Q1ZVMUVNRDA9=

多次base64加密,解密即可:

import base64
flag='VjFjd2VHRXlVbGRhTTNCVFltMVNjMVJVUW1GamJIQkhXa1pPVGxJd2NGcFdSbWhyWVRGYVJsZHVVbUZXZWxJelZVWkZPVkJSUFQwPQ=='
while True:
    try:
        flag=base64.b64decode(flag)
    except Exception as err:
        print(flag)
        break

 解密后得到的并不是最终的flag:

像是栅栏密码,尝试解密:

得到形式于flag格式一致的字串,在移位解密,得到flag:

input_str=input('plaintext:')
key=1
while key<27:
    str1=input_str
    flag=''
    for i in range(len(str1)):
        try:
            if not (65<=ord(str1[i])<=90 or 97<=ord(str1[i])<=122):
                flag+=str1[i]
            else:
                flag+=chr(97+(ord(str1[i])-97-key)%26)
        except Exception as err:
            print(err)
    key+=1
    print(key,flag)

  • 贝斯族谱升级版
R1pDRE1SUldHTTNUSU5SV0c1QkRNUkJUR0UzRElOUlVHWkJUTU5KVklZM0RHTlpTRzQ0VE9NQlhHUVpUQU4yRQ==

base64、32、16分别解密即可得到flag:

from base64 import *
flag='R1pDRE1SUldHTTNUSU5SV0c1QkRNUkJUR0UzRElOUlVHWkJUTU5KVklZM0RHTlpTRzQ0VE9NQlhHUVpUQU4yRQ=='
while True:
    try:
        flag=b64decode(flag)
    except Exception as err:
        print(err)
    try:
        flag=b32decode(flag)
    except Exception as err:
        print(err)
    try:
        flag=b16decode(flag)
    except Exception as err:
        break
print(flag)

  • 卡哇伊

题目描述:

拿到的文件是一堆字符(AAencode):

在线解密:

 

  • 我觉得ok

题目描述:

拿到的同样是一堆字符(ook编码):

在线解码:

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值