设备指纹生成器

仅利用浏览器特征生成稳定、唯一的设备 ID。
无 Cookie · 无 LocalStorage · 零权限获取

核心原理 (How it works)

现代浏览器为了优化性能,会利用底层硬件(GPU、声卡)加速渲染和计算。由于硬件厂商、驱动版本、操作系统抗锯齿策略的不同,哪怕是同样的文字和图形,在不同设备上渲染出的二进制数据也会存在肉眼极难察觉的微小差异。

Device Fingerprint 通过组合多种浏览器特征,生成一个能够尽量唯一标识该设备的哈希字符串。本 SDK 采用了 5 种信号源

  • 🎨
    Canvas 指纹 - 不同 GPU 和渲染引擎绘制图形时的细微差异
  • 🔊
    Audio 指纹 - 音频堆栈处理波形的特征差异
  • 💻
    硬件特征 - CPU 核心数、内存、平台、语言、时区等
  • 🎮
    WebGL 指纹 - GPU 供应商、渲染器型号及 WebGL 参数
  • 📝
    字体检测 - 系统已安装字体列表(20 种常见字体)
🔐 熵值估计

5 种信号源组合可提供约 38 bits 的熵值,理论上可以区分约 2740 亿台不同设备。

使用方法 (Usage)

本 SDK 已开源,您可以直接在项目中引入使用。 查看 GitHub 源码仓库

import { generateFingerprint } from './sdk.js';

// 生成指纹
const result = await generateFingerprint({
  canvas: true,   // 启用 Canvas 指纹
  audio: true,    // 启用 Audio 指纹
  webgl: true,    // 启用 WebGL 指纹 (新增)
  fonts: true,    // 启用字体检测 (新增)
  hardware: true, // 启用硬件特征
});

console.log(result.deviceId); 
// 输出: "84e1b..." (16位稳定唯一 ID)`;

隐私与局限 (Privacy & Limits)

  • ✅ 隐私友好
    SDK 仅采集设备硬件属性(如 GPU、声卡处理特征)和系统配置,不收集任何 IP、地理位置或具体设备账户等敏感隐私信息。
  • ✅ 稳定持久
    不依赖 cookielocalStorage,清理缓存或使用隐身模式通常不会改变 ID。采集逻辑已针对夏令时等环境波动进行了稳定性优化。
  • ⚠ 抗指纹浏览器
    部分隐私浏览器(如 Tor、Brave)或 Safari 的“阻止跨站跟踪”功能会故意为 Canvas/Audio 添加随机噪点。这会导致每次生成的 ID 都不一样。这是正常的隐私保护机制。

觉得这个工具好用?

你的 Star 是对我持续开发的最大鼓励!点击右侧按钮前往 GitHub 支持我。

Give me a Star