Giter Club home page Giter Club logo

fnv-lite's Introduction

fnv-lite

Build Status

A much smaller FNV-1a hash library, friendlier to browsers.

fnv-lite implements the 128-bit variant of Fowler-Noll-Vo version 1a. It emits hashes in hex, base64, and as a raw array of octets.

Usage

fnv-lite is a UMD module, so you can use it with require.js, Node, browserify, or directly in your browser window, in which case it will export window.FNV.

npm install --save fnv-lite
var FNV = require('fnv-lite');

console.log(FNV.hex('')); // 6c62272e07bb014262b821756295c58d
console.log(FNV.base64('')); // bGInLge7AUJiuCF1YpXFjQ==
console.log(FNV.base64Url('')); // bGInLge7AUJiuCF1YpXFjQ
console.log(FNV.base36('')); // 6ezv16m7wweombnkd3ldlii6l

API

FNV.hex(string)

Returns the FNV-1a hash of string as a hex string.

FNV.base36(string)

Returns the FNV-1a hash of string as a base36-encoded string. Base36 is a relic of the Javascript universe, in that it happens to be the largest number base you can pass to Number#toString(). This method is included because it replicates the behavior of the str() serialization in fnv-plus.

FNV.base64(string)

Returns the FNV-1a hash of string as a base64-encoded string.

FNV.base64Url(string)

Returns the FNV-1a hash of string as a URL-safe base64-encoded string, which is different from a regular base64 string in the following respects:

  • "+" becomes "-".
  • "/" becomes "_".
  • The trailing padding characters (==) are omitted.

new FNV()

Create a new FNV hash object.

FNV#update(iterable)

Add the contents of the supplied string/byte array to the hash and recompute its value.

Returns the original FNV object, so you can chain it.

FNV#digest(['hex' | 'base36' | 'base64'])

Retrieve the current value of the hash in hexadecimal, base36 (a Javascript relic), or base64. If you don't supply a digest type, fnv-lite will return the current hash value as a "byte" array.

Why not fnv-plus?

fnv-plus is an excellent library for server-side operations. Unfortunately it requires the jsbn library, which adds quite a lot of girth to browser builds.

More info

License

ISC.

fnv-lite's People

Contributors

goldibex avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Forkers

goldibex

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.