A TypeScript library for generating browser fingerprints with support for both UMD and ES modules
npm install browser-fingerprint-tsbash
npm install browser-fingerprint-ts
`
使用方法
$3
`html
`
$3
`html
`
$3
`javascript
const BrowserFingerprint = require('browser-fingerprint-ts');
const fingerprint = new BrowserFingerprint();
fingerprint.generate().then(result => {
console.log('指纹数据:', result);
console.log('指纹哈希:', result.hash);
});
`
API文档
$3
#### 构造函数
`javascript
new BrowserFingerprint(options?: FingerprintOptions)
`
#### 方法
- generate(): 生成完整的浏览器指纹数据
- getHash(): 获取指纹的哈希值
- getJSON(): 获取指纹的JSON字符串
- updateOptions(options): 更新配置选项
- getOptions(): 获取当前配置
$3
`javascript
import { generateFingerprint, getFingerprintHash, getFingerprintJSON } from 'browser-fingerprint-ts';
// 直接使用便捷方法
const fingerprint = generateFingerprint();
const hash = getFingerprintHash();
const json = getFingerprintJSON();
`
$3
`typescript
interface FingerprintOptions {
includeScreen?: boolean; // 是否包含屏幕信息
includeTimezone?: boolean; // 是否包含时区信息
includeCPU?: boolean; // 是否包含CPU信息
includeFonts?: boolean; // 是否包含字体信息
includeAudio?: boolean; // 是否包含音频信息
includeGPU?: boolean; // 是否包含GPU信息
includeWritingScripts?: boolean; // 是否包含书写脚本
includeIncognito?: boolean; // 是否检测隐身模式
}
`
指纹数据格式
`typescript
interface FingerprintData {
screen: { // 屏幕信息
screenWidth: number;
screenHeight: number;
colorDepth: number;
pixelDepth: number;
availWidth: number;
availHeight: number;
};
timezone: { // 时区信息
timezoneOffset: number;
timezone: string;
};
cpuCores: number; // CPU核心数
stableFonts: string[]; // 稳定字体列表
binnedAudio: { // 音频信息
sampleRate: number;
state: string;
};
gpuHash: string | null; // GPU哈希值
writingScripts: string[]; // 书写脚本
isIncognito: boolean; // 是否隐身模式
hash: string; // 指纹哈希值
}
`
使用示例
$3
`javascript
const fingerprint = new BrowserFingerprint();
// 生成完整指纹
fingerprint.generate().then(result => {
console.log('指纹数据:', result);
console.log('指纹哈希:', result.hash);
});
// 或者使用async/await
async function getFingerprint() {
const result = await fingerprint.generate();
console.log('指纹数据:', result);
console.log('指纹哈希:', result.hash);
}
`
$3
`javascript
const fingerprint = new BrowserFingerprint({
includeScreen: true,
includeAudio: false,
includeGPU: true,
includeFonts: true,
includeWritingScripts: false
});
fingerprint.generate().then(result => {
console.log('自定义配置的指纹:', result);
});
`
$3
`javascript
const fingerprint = new BrowserFingerprint();
// 更新配置
fingerprint.updateOptions({
includeAudio: true
});
fingerprint.generate().then(result => {
console.log('更新配置后的指纹:', result);
});
``