Powerful Device Fingerprinting Made Simple
A lightweight, privacy-focused browser fingerprinting library that generates consistent device identifiers across sessions
Try it now
Your browser unique fingerprint:
Features
Everything you need for reliable device fingerprinting in a tiny package
Privacy-Focused Identification
Create unique device identifiers without collecting personally identifiable information
Consistent Identifiers
Generate reliable fingerprints that remain consistent for the same device across sessions
Multiple Formats
Generate short (8 chars) or long (64 chars) fingerprints depending on your security needs
Framework Agnostic
Works seamlessly with React, Vue, Angular, or vanilla JavaScript applications
Lightweight
Zero dependencies and minimal footprint for optimal performance
Configurable Components
Customize fingerprinting by enabling or disabling Canvas, Audio, and WebGL components
Framework Examples
dPrintJs works with all modern JavaScript frameworks. Here is how to use it in your favorite environment
import { useEffect, useState } from 'react';
import { dPrintId } from 'dprintjs';
function App() {
const [deviceId, setDeviceId] = useState('');
useEffect(() => {
const getFingerprint = async () => {
const fingerprint = dPrintId.getInstance();
const id = await fingerprint.generateFingerprint();
setDeviceId(id);
};
getFingerprint();
}, []);
return <div>Device ID: {deviceId}</div>;
}
How It Works
dPrintJs is designed to be simple to use while providing robust device fingerprinting
Install the Package
Add dPrintJs to your project using npm, yarn, or pnpm
npm install dprintjs
# or
yarn add dprintjs
# or
pnpm add dprintjs
Initialize the Library
Get an instance of dPrintId to start generating fingerprints
import { dPrintId } from 'dprintjs';
// Get instance
const fingerprint = dPrintId.getInstance();
Generate Fingerprints
Create short (8 characters) or long (64 characters) fingerprints for device identification
// Generate short fingerprint (8 characters)
const shortId = await fingerprint.generateFingerprint({ format: "short" });
// Example output: "ABC123XY"
// Generate long fingerprint (64 characters)
const longId = await fingerprint.generateFingerprint({ format: "long" });
// Example output: "f7ac85b8d9e76c4e8649e6ca5b29142a8736c12edb9144edcf..."
Customize (Optional)
Configure the fingerprinting components and add a custom salt for enhanced uniqueness
const deviceId = await fingerprint.generateFingerprint({
format: 'long',
includeCanvas: true,
includeAudio: true,
includeWebGL: true,
salt: 'my-custom-salt'
});
Ready to get started?
Add reliable device fingerprinting to your application in minutes