seed-fingerprint
TypeScript icon, indicating that this package has built-in type declarations

1.2.0 • Public • Published

seed-fingerprint

seed-fingerprint is a library that creates a hash that can identify users based on seeds.

The library has gained a lot of inspiration from the https://github.com/fingerprintjs/fingerprintjs, and https://github.com/pjanczyk/simple-fingerprint libraries. Thank you.

For example, you may want to use fingerprints instead of tokens, but the user's finger prints can get the same value on all websites. It is not good for security because the attacker can steal the user's finger print.

seed-fingerprint uses seeds to generate a hash that can identify the user.

Demo

https://izure1.github.io/seed-fingerprint/sample.html

Usage

Docs

https://izure1.github.io/seed-fingerprint

Node.js

import { create } from 'seed-fingerprint';

const seed = 'hello';
const fingerprint = create(seed);

const id = await fingerprint.get();

Browser (umd)

// html load
<script src="https://cdn.jsdelivr.net/npm/seed-fingerprint@1.x.x/build/umd/index.min.js"></script>
// script
const seed = 'hello';
const fingerprint = window.SeedFingerprint.create(seed);

const id = await fingerprint.get();

Browser (esm)

<script type="module">
import { create } from 'https://cdn.jsdelivr.net/npm/seed-fingerprint@1.x.x/build/esm/index.min.js'

const seed = 'hello';
const fingerprint = create(seed);

const id = await fingerprint.get();
</script>

fingerprint has the following components: Each component returns a promise.

SeedFingerprint {
    component: {
        canvas: {
            canvas2dRender: string
        },
        date: {
            timezoneOffset: number
        },
        font: {
            availableFonts: string[]
        },
        header: {
            header: {
                Accept: string
                Accept-Encoding: string
                Accept-Language: string
                User-Agent: string
            },
            agent: {
                ip: string
                loc: string
            }
        },
        navigator: {
            cookieEnabled: boolean
            hardwareConcurrency: number
            maxTouchPoints: number
            language: string
            languages: string[]
            plugins: {
                [key: string]: string
            }
        },
        screen: {
            colorDepth: number
            width: number
            height: number
        },
        webgl: {
            webglRenderer: string
            webglRender: string
        },
    }
}

Dependencies (2)

Dev Dependencies (29)

Package Sidebar

Install

npm i seed-fingerprint

Weekly Downloads

3

Version

1.2.0

License

MIT

Unpacked Size

241 kB

Total Files

16

Last publish

Collaborators

  • izure1