What is js-sha1?
The js-sha1 npm package is a JavaScript implementation of the SHA-1 hash function. It allows you to generate SHA-1 hashes from strings, arrays, and array buffers. This package is useful for cryptographic operations, data integrity checks, and other scenarios where SHA-1 hashing is required.
What are js-sha1's main functionalities?
Hashing a String
This feature allows you to generate a SHA-1 hash from a string. The code sample demonstrates how to hash the string 'Hello, World!' and print the resulting hash.
const sha1 = require('js-sha1');
const hash = sha1('Hello, World!');
console.log(hash); // '943a702d06f34599aee1f8da8ef9f7296031d699'
Hashing an Array
This feature allows you to generate a SHA-1 hash from an array of bytes. The code sample demonstrates how to hash the array [0x61, 0x62, 0x63] and print the resulting hash.
const sha1 = require('js-sha1');
const hash = sha1([0x61, 0x62, 0x63]);
console.log(hash); // 'a9993e364706816aba3e25717850c26c9cd0d89d'
Hashing an ArrayBuffer
This feature allows you to generate a SHA-1 hash from an ArrayBuffer. The code sample demonstrates how to hash an ArrayBuffer containing the bytes [0x61, 0x62, 0x63] and print the resulting hash.
const sha1 = require('js-sha1');
const buffer = new ArrayBuffer(3);
const view = new Uint8Array(buffer);
view[0] = 0x61;
view[1] = 0x62;
view[2] = 0x63;
const hash = sha1(buffer);
console.log(hash); // 'a9993e364706816aba3e25717850c26c9cd0d89d'
Other packages similar to js-sha1
crypto-js
CryptoJS is a widely-used library that provides a variety of cryptographic algorithms, including SHA-1, SHA-256, MD5, and more. It offers a more comprehensive set of cryptographic functions compared to js-sha1, making it suitable for applications that require multiple types of hashing and encryption.
hash.js
Hash.js is a library that provides a variety of hash functions, including SHA-1, SHA-256, and SHA-512. It is similar to js-sha1 in that it focuses on hashing, but it offers a broader range of hash functions, making it more versatile for different cryptographic needs.
sha.js
Sha.js is a simple library that provides SHA-1, SHA-224, SHA-256, SHA-384, and SHA-512 hash functions. It is similar to js-sha1 but offers additional SHA variants, making it a good choice for applications that require different SHA algorithms.
js-sha1
A simple SHA1 hash function for JavaScript supports UTF-8 encoding.
Demo
SHA1 Online
Download
Compress
Uncompress
Installation
You can also install js-sha1 by using Bower.
bower install js-sha1
For node.js, you can use this command to install:
npm install js-sha1
Usage
You could use like this:
sha1('Message to hash');
If you use node.js, you should require the module first:
sha1 = require('js-sha1');
Example
Code
sha1('');
sha1('The quick brown fox jumps over the lazy dog');
sha1('The quick brown fox jumps over the lazy dog.');
Output
da39a3ee5e6b4b0d3255bfef95601890afd80709
2fd4e1c67a2d28fced849ee1bb76e7391b93eb12
408d94384216f890ff7a0c3528e8bed1e0b01621
It also supports UTF-8 encoding:
Code
sha1('中文');
Output
7be2d2d20c106eee0836c9bc2b939890a78e8fb3
It also supports byte Array or Uint8Array input:
Code
sha1([]);
sha1(new Uint8Array([]));
Output
da39a3ee5e6b4b0d3255bfef95601890afd80709
da39a3ee5e6b4b0d3255bfef95601890afd80709
Benchmark
UTF8
ASCII
Extensions
jQuery
If you prefer jQuery style, you can add following code to add a jQuery extension.
Code
jQuery.sha1 = sha1;
And then you could use like this:
$.sha1('message');
Prototype
If you prefer prototype style, you can add following code to add a prototype extension.
Code
String.prototype.sha1 = function() {
return sha1(this);
};
And then you could use like this:
'message'.sha1();
License
The project is released under the MIT license.
Contact
The project's website is located at https://github.com/emn178/js-sha1
Author: emn178@gmail.com