Python requests库过指纹检测

文章目录

    • [JA3 指纹算法](#JA3 指纹算法)
    • 代码

参考:https://blog.csdn.net/qq_37144341/article/details/120083219

修正该参考文章中的检测地址

JA3 指纹算法

JA3是一种创建SSL/TLS客户端指纹的方法,它易于在任何平台上生成,并且可以轻松共享以获取威胁情报。 JA3 由三位 Salesforce 成员(John Althouse、Jeff Atkinson 和 Josh Atkins)开发,是一种用于根据 ClientHello 数据包生成 SSL 指纹以识别建立加密连接的客户端的技术。 相同的客户端工具所产生的JA3指纹总是一致的

代码

python 复制代码
from requests.adapters import HTTPAdapter
from requests.packages.urllib3.util.ssl_ import create_urllib3_context
 
ORIGIN_CIPHERS = ('ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+HIGH:'
'DH+HIGH:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+HIGH:RSA+3DES')
 
 
class DESAdapter(HTTPAdapter):
    def __init__(self, *args, **kwargs):
        """
        A TransportAdapter that re-enables 3DES support in Requests.
        """
        CIPHERS = ORIGIN_CIPHERS.split(':')
        random.shuffle(CIPHERS)
        CIPHERS = ':'.join(CIPHERS)
        self.CIPHERS = CIPHERS + ':!aNULL:!eNULL:!MD5'
        super().__init__(*args, **kwargs)
        
        
    def init_poolmanager(self, *args, **kwargs):
        context = create_urllib3_context(ciphers=self.CIPHERS)
        kwargs['ssl_context'] = context
        return super(DESAdapter, self).init_poolmanager(*args, **kwargs)
 
    def proxy_manager_for(self, *args, **kwargs):
        context = create_urllib3_context(ciphers=self.CIPHERS)
        kwargs['ssl_context'] = context
        return super(DESAdapter, self).proxy_manager_for(*args, **kwargs)

main

python 复制代码
headers = {
    'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.131 Safari/537.36 Edg/92.0.902.67'}
s = requests.Session()
s.headers.update(headers)

for _ in range(5):
    s.mount('https://tls.browserscan.net', DESAdapter())
    resp = s.get('https://tls.browserscan.net/api/tls',verify=False).json()
    print(resp['tls']['ja3'])
相关推荐
ajassi200015 分钟前
开源 C# 快速开发(十二)进程监控
开发语言·开源·c#
Gerlat小智19 分钟前
【Python精讲 16】实战项目演练(二):用Flask/FastAPI发布你的第一个Web API
python·flask·fastapi
库库83927 分钟前
Java微服务知识点详细总结
java·开发语言·微服务
txwtech38 分钟前
第4篇 vs2019+QT调用SDK连接海康相机显示图片
开发语言·数码相机·qt
fenghx25842 分钟前
vscode使用arcpy-选择arcgis带的python+运行错误解决
vscode·python·arcgis
王嘉俊9251 小时前
Flask 入门:轻量级 Python Web 框架的快速上手
开发语言·前端·后端·python·flask·入门
爱刘温柔的小猪1 小时前
Python 基于 MinIO 的文件上传服务与图像处理核心实践
python·minio
(●—●)橘子……1 小时前
记力扣2271.毯子覆盖的最多白色砖块数 练习理解
数据结构·笔记·python·学习·算法·leetcode
做运维的阿瑞1 小时前
Python 面向对象编程深度指南
开发语言·数据结构·后端·python
木木子99991 小时前
Python的typing模块:类型提示 (Type Hinting)
开发语言·windows·python