• 【密文特征分析】加密类型判断


    1、代码

    import re
    import sys
    
    import requests
    
    
    def post_url(data):
        """
        其实就是把「https://www.dcode.fr/cipher-identifier」网站的功能,改成接口形式
        之所以改成接口,是因为网站加载有些慢,很多不必要加载很是浪费时间
        :param data: 需要判断的密码字符串
        :return: 网站的返回分析数据
        """
        session = requests.session()
    
        # 获取 Cookie
        url = "https://www.dcode.fr/cipher-identifier"
        response = session.get(url)
        cookie = response.headers['Set-Cookie'].split(";")[0]
    
        # 带 Cookie 请求 api 接口
        url = "https://www.dcode.fr/api/"
        payload = f"tool=cipher-identifier&ciphertext={data}&clues="
        headers = {
            'Cookie': cookie,
            'Sec-Ch-Ua': '"Microsoft Edge";v="119", "Chromium";v="119", "Not?A_Brand";v="24"',
            'Accept': 'application/json, text/javascript, */*; q=0.01',
            'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
            'X-Requested-With': 'XMLHttpRequest',
            'Sec-Ch-Ua-Mobile': '?0',
            'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) Chrome/119.0.0.0 Safari/537.36 Edg/119.0.0.0',
            'Sec-Ch-Ua-Platform': '"macOS"',
            'Origin': 'https://www.dcode.fr',
            'Sec-Fetch-Site': 'same-origin',
            'Sec-Fetch-Mode': 'cors',
            'Sec-Fetch-Dest': 'empty',
            'Referer': 'https://www.dcode.fr/cipher-identifier',
            'Accept-Encoding': 'gzip, deflate',
            'Accept-Language': 'zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6'
        }
        response = session.post(url, headers=headers, data=payload).json()
        return response["results"]
    
    
    def clear_dict(cipher):
        """ 清理掉HTML标签 """
        new_dict = {}
        for key in cipher:
            new_dict[re.search('(.*?)', key).group(1)] = cipher[key]
        return new_dict
    
    
    def format_dict(dictionary):
        """ 字典输出格式化 """
        max_key_len = max(len(key) for key in dictionary.keys())
        max_value_len = max(len(value) for value in dictionary.values())
    
        for key, value in dictionary.items():
            key_spaces = ' ' * (max_key_len - len(key))
            value_spaces = ' ' * (max_value_len - len(value))
            print(key + key_spaces + ' : ' + value + value_spaces)
    
    
    if __name__ == '__main__':
        if len(sys.argv) == 2:
            cipher_dict = post_url(sys.argv[1])
        else:
            print("使用说明 : python3 cipher_identifier.py {密文}")
            exit(1)
        format_dict(clear_dict(cipher_dict))
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71

    2、使用说明

    没有什么好说明的,就是 https://www.dcode.fr/cipher-identifier 网站接口,网站加载太慢了,所以我就把接口做成了Python脚本,方便使用,节省时间。

    ┌──(root㉿kali)-[~] (๑•̀ㅂ•́)و✧ 
    └─# python3 cipher_identifier.py
    Usage : python3 cipher_identifier.py {密文}
    
    
    • 1
    • 2
    • 3
    • 4
    ┌──(root㉿kali)-[~] (๑•̀ㅂ•́)و✧ 
    └─# python3 cipher_identifier.py cf4c2232354952690368f1b3dfdfb24d
    MD5                   : ■▪
    Hexadecimal Data      : ■ 
    MD4                   : ■ 
    Hexadecimal (Base 16) : ▪ 
    ASCII Code            : ▪ 
    Base62 Encoding       : ▫ 
    Base64 Coding         : ▫ 
    XOR Cipher            : ▫ 
    UUID                  : ▫ 
    Huffman Coding        : ▫ 
    LZW Compression       : ▫ 
    Circular Bit Shift    : ▫ 
    EBCDIC Encoding       : ▫ 
    RC4 Cipher            : ▫ 
    Substitution Cipher   : ▫ 
    Shift Cipher          : ▫ 
    Homophonic Cipher     : ▫ 
    Turning Grille        :
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
  • 相关阅读:
    Linux CentOS7 lrzsz工具
    Qt(day1)
    explain的执行结果:Impossible WHERE
    为什么许多shopify独立站卖家都在用聊天机器人?一分钟读懂行业秘密!
    python学习--字符串的驻留机制
    GPT-4V:AI在教育领域的应用
    涨薪跳槽利器,清华大咖总结的 Java 核心突击讲,一应俱全
    基于Laravel 5.6的运动健身类小程序前后端源码
    HttpClient的setConnectionRequestTimeout、setConnectTimeout、setSocketTimeout设置注意事项
    ACM. HJ70 矩阵乘法计算量估算 ●●
  • 原文地址:https://blog.csdn.net/weixin_43094965/article/details/134543754