继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

解密虾米data-mp3(凯撒阵列加密)

慕的地10843
关注TA
已关注
手记 1081
粉丝 200
获赞 961

加密数据:
7h%1.3F3E59%.t2.n3315E35mtFxe83%16Epp%it27227563%2a%1%F56383Fm2%5%28_7AfiF2E5%966


webp

图解凯撒列阵加密


7表示有7行,从左到右竖着看。连起来是http%3A%2F%2Ff1.xiami.net%2F33821%2F337%5E31%2F%5E5%252%5E1768993653_6%5E6876.mp3经过urldecode后变成 http://f1.xiami.net/33821/337^31/^5%2^1768993653_6^6876.mp3把^变成0,就是 http://f1.xiami.net/33821/337031/05%201768993653_606876.mp3


webp

逐步解析

webp

调试图解

源码

from urllib import parse# 解密经过加密的dataMp3内容def dataMp3(s):
    num_loc = s.find('h')
    rows = int(s[0:num_loc])
    strlen = len(s) - num_loc
    cols = int(strlen / rows)
    right_rows = strlen % rows
    new_s = list(s[num_loc:])
    output = ''
    for i in range(len(new_s)):
        x = i % rows
        y = i / rows        # p = 0
        if x <= right_rows:
            p = x * (cols + 1) + y        else:
            p = right_rows * (cols + 1) + (x - right_rows) * cols + y
        output += new_s[int(p)]    return parse.unquote(output).replace('^', '0')



作者:GHope
链接:https://www.jianshu.com/p/3411b0e48581


打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP