@elhamdev/tracejs
Version:
A modern, privacy-conscious alternative to browser fingerprinting for unique user identification.
32 lines (31 loc) • 1.02 kB
TypeScript
/**
* Utilities for measuring fingerprint entropy and uniqueness
*/
export interface FingerprintCharacteristics {
battery?: string;
screen?: string;
canvas?: string;
webglParams?: string;
audio?: string;
userAgent?: string;
[key: string]: string | undefined;
}
/**
* Calculate Shannon entropy of a string
* Higher values indicate more randomness/uniqueness
*/
export declare function calculateStringEntropy(str: string): number;
/**
* Estimate bit entropy of a fingerprint
* @param fingerprint The fingerprint string
* @param characteristics The collected fingerprint characteristics
* @returns Estimated bits of entropy
*/
export declare function estimateFingerprintEntropy(fingerprint: string, characteristics: Partial<FingerprintCharacteristics>): number;
/**
* Get a qualitative assessment of fingerprint strength
*/
export declare function getFingerprintQuality(entropyBits: number): {
rating: "weak" | "moderate" | "strong" | "very strong";
description: string;
};