Security News
CISA Brings KEV Data to GitHub
CISA's KEV data is now on GitHub, offering easier access, API integration, commit history tracking, and automated updates for security teams and researchers.
@sindresorhus/fnv1a
Advanced tools
FNV-1a non-cryptographic hash function
FNV-1a has outstanding distribution and collisions are rare.
FNV hashes are designed to be fast while maintaining a low collision rate. The FNV speed allows one to quickly hash lots of data while maintaining a reasonable collision rate. The high dispersion of the FNV hashes makes them well suited for hashing nearly identical strings such as URLs, hostnames, filenames, text, IP addresses, etc.
npm install @sindresorhus/fnv1a
import fnv1a from '@sindresorhus/fnv1a';
fnv1a('🦄🌈', {size: 32});
//=> 2868248295n
fnv1a('🦄🌈', {size: 128});
//=> 13487074350300261116944693128525960095n
Number(fnv1a('🦄🌈', {size: 32}));
//=> 2868248295
const bytes = new Uint8Array([240, 159, 166, 132, 240, 159, 140, 136]);
fnv1a(bytes, {size: 32});
//=> 2868248295n
Returns the hash as a positive BigInt
.
If you need it as a number
, use 32
as size
and wrap the return value in Number(…)
.
Type: string | Uint8Array
A string or UTF-8 bytes.
Type: object
Type: number
Values: 32 | 64 | 128 | 256 | 512 | 1024
Default: 32
The bit size of the hash.
Type: Uint8Array
A Uint8Array used to encode the string into UTF-8 bytes.
This array can be reused across calls to fnv1a
. Doing so will improve performance because it avoids allocating a new Uint8Array when encoding the string.
The size of the array does not have to be large enugh to hold the entire string, but performance will be improved if it is.
This option is only used when value
is a string.
import fnv1a from '@sindresorhus/fnv1a';
const utf8Buffer = new Uint8Array(100);
fnv1a('🦄🌈', {size: 32, utf8Buffer});
//=> 2868248295n
FAQs
FNV-1a non-cryptographic hash function
We found that @sindresorhus/fnv1a demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
CISA's KEV data is now on GitHub, offering easier access, API integration, commit history tracking, and automated updates for security teams and researchers.
Security News
Opengrep forks Semgrep to preserve open source SAST in response to controversial licensing changes.
Security News
Critics call the Node.js EOL CVE a misuse of the system, sparking debate over CVE standards and the growing noise in vulnerability databases.