Tag:加密解密

Tag (加密解密)'s result:

详细分析md5{d_base64}解密方式

0x00 概述 最近测试某系统遇到一种加密方式,形似gsiSbcE5GNnTqndI2Hy4tA==,经查阅资料得知是md5{d_base64}加密,此文将详细介绍其解密方式。   0x01 手动解密 看到最后的==,第一反应就是base64,所以先放到base64解密的网站解密看看,结果如下图…… 乱码,后面查阅资料得知这里要用二进制方式打开。 现在开始手动解密: 先看看base64编码表 00        A        16        Q        32        g        48        w 01        B        17        R        33        h        49        x 02        C        18        S        34        i        50        y 03        D        19        T        35        j        51        z 04        E        20        U        36        k        52        0 05        F        21        V        37        l        53        1 06        G        22        W        38        m        54        2 07        H        23        X        39        n        55        3 08        I        24        Y        40        o        56        4 09        J        25        Z        41        p        57        5 10        K        26        a        42        q        58        6 11        L        27        b        43        r        59        7 12        M        28        c        44        s        60        8 13        N        29        d        45        t        61        9 14        O        30        e        46        u        62        + 15        P        31        f        47        v        63        /   将gsiSbcE5GNnTqndI2Hy4tA==去掉最后的==,再对照表一一对应解密,得 32 44 34 18 27 28 04 57 06 13 39 19 42 39 29 37 54 07 50 56 45 00 再将上面的数字转二进制 0b是二进制,要补齐6位,如18-010010,04-000100,再去掉开头的0b。 接着拼接成8位,如32-100000,44-101100就拼接成10000010 接着转成hex,这里利用python先二转十,再十转十六 得82,其余同理,结果拼接一起得 82C8926DC13918D9D3AA7748D87CB8B4 明显的32位md5,直接解密即可得明文。 总结下解密流程: 去掉==—>对照编码表解出数字—>数字转二进制—>补6拼8—>转hex—>得32位md5—>解密得明文 其实在线解码只要勾选16进制显示即可 加密过程: 由解密过程逆向推理: 32位md5—>两个字符1组共16组hex—>转十进制—>转二进制—>补8拼6—>对照编码表得字符—>连接得密文   0x02 工具解密 手动解密费时费力,可以直接用工具解密,这里介绍几个工具。 1. http://www.fourmilab.ch/webtools/base64/ 新建base.b64,写入密文,再输入命令 base64 –decode base64.b64 base64.tmp 再用winhex打开base64.tmp即可获得32位md5(直接文本打开会乱码,所以要以二进制打开)   2. PasswordsPro.v2.5.4.0 这个软件貌似是直接解32位md5,所以关键看字典。   3.cmd5可以直接解密,也是看字典。   4. 脚本解密: https://github.com/theLSA/md5Base64Cracker #coding:utf-8 #Author:LSA #Description:Crack md5{d_base64} encryption #Data:20180306 #Version:v1.0 import md5 import optparse base64Table = {‘+’: 62, ‘/’: 63, ‘1’: 53, ‘0’: 52, ‘3’: 55, ‘2’: 54, ‘5’: 57, ‘4’: 56, ‘7’: 59, ‘6’: 58, ‘9’: 61, ‘8’: 60, ‘A’: 0, ‘C’: 2, ‘B’: 1, ‘E’: 4, ‘D’: 3, ‘G’: 6, ‘F’: 5, ‘I’: 8, ‘H’: 7, ‘K’: 10, ‘J’: 9, ‘M’: 12, ‘L’: 11, ‘O’: 14, ‘N’: 13, ‘Q’: 16, ‘P’: 15, ‘S’: 18, ‘R’: 17, ‘U’: 20, ‘T’: 19, ‘W’: 22, ‘V’: 21, ‘Y’: 24, ‘X’: 23, ‘Z’: 25, ‘a’: 26, ‘c’: 28, ‘b’: 27, ‘e’: 30, ‘d’: 29, ‘g’: 32, ‘f’: 31, ‘i’: 34, ‘h’: 33, ‘k’: 36, ‘j’: 35, ‘m’:……