收录CTF中MISC常用的在线工具网站(持续更新...)

目录


工具集成

编码

ASCII编码对照表

Base家族

Base64

Base64编码是使用64个可打印ASCII字符,范围为A-Za-z0-9以及+/

Base32

Base32编码是使用32个可打印字符,范围为字母A-Z和数字2-7

Base16

Base16编码使用16个ASCII可打印字符,范围为数字0-9和字母A-F

Base58

Base58在Base64的基础上去除了几个看上去有容易产生歧义的字符:数字0、大写字母O、大写字母I、小写字母l,以及+/。所以Base58字符范围是9个数字、24个大写字母、25个小写字母

Base85

Base91

Url编码

编码所有字符脚本如下:

def urlencode(encodestr):
    codestr = ''
    for i in encodestr:
        i = '%' + hex(ord(i))[2:]
        codestr += i
    return codestr

if __name__ == '__main__':
    encodestr = 'https://mochu.blog.csdn.net/'#需要编码的字符
    print(urlencode(encodestr))#如需多次编码循环嵌套即可,例如编码两次urlencode(urlencode(encodestr))

Hex编码

字符串&十六进制转换脚本如下:

def str2hex(string):
    resstr = ''
    for char in string:
        hexstr = hex(int(ord(char)))[2:]
        resstr += hexstr
    print('[+]Text To Hex: {}'.format(resstr))

def hex2str(string):
    resstr = ''
    for i in range(0,len(string),2):
        strnum = int(string[i:i+2],16)
        if strnum<128:
            resstr += chr(strnum)
        else:
            resstr += hex(strnum)
    print('[+]Hex To Text: {}'.format(resstr))


if __name__ == '__main__':
    string = "flag{mochu7_No_Girlfriend}"
    #str2hex(string)#字符串转十六进制
    #hex2str(string)#十六进制转字符

Unicode编码

摩尔斯电码

敲击码

AAencode

JJencode

注意:JJencode是不可逆的

XXencode

UUencode

PPencode

Brainfuck

Ook!

Ook!Short Ook!看上去并不太相同,Short Ook!是以!.?组成

Jsfuck

Emoji编码

BubbleBabble

*价值观编码

与佛论禅编码

Quoted-printable编码

Escape编码

Handycode

Punycode

盲文编码

音符编码

密码

MD5

AES

DES

3DES

RSA

栅栏密码

Rot13密码

凯撒密码

def change(c,i):
    num=ord(c)
    if(num>=33 and num<=126):
        num=33+(num+i-33)%(94)#126-33=93
    return chr(num)
 
  
def kaisa_jiAmi(string,i):
    string_new=''
    for s in string:
        string_new+=change(s,i)
    print(string_new)
    return string_new
 
#本题有种暴力解密感觉
def kaisa_jiEmi(string):
    for i in range(0,94):
        print('第'+str(i+1)+'种可能:',end='  ')
        #区别在于 string 是该对象原本就是字符串类型, 而 str()则是将该对象转换成字符串类型。
        kaisa_jiAmi(string,i)
    
#你要知道input输入的数据类型都是string  
def main():
    print('请输入操作,注意不是平常26种:')
    choice=input('1:恺撒加密,2:凯撒穷举解密.请输入1或2:')
    if choice=='1':
        string=input('请输入需要加密字符串: ')
        num=int(input('请输入需要加密的KEY: '))
        kaisa_jiAmi(string,num)
    elif choice=='2':
        string=input('请输入需要解密字符串: ')
        kaisa_jiEmi(string)
    else:
        print('输入错误,请重试')
        main()
    
if __name__=='__main__':
    main()

维吉尼亚密码

猪圈密码

培根密码

关键字密码

希尔密码

A1z26密码

仿射密码

自动密钥密码

隐写&其他

Snow隐写

零宽度字符隐写

OCR图片文字识别

二维码修补

Pyc反编译

歌曲识别

逆序&大小写转换

pcap&pcapng流量包修复

上一篇:CTF Misc 题目基础


下一篇:linux flash驱动设计思想总结