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
SHA1 File Checksum 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
Notice
NIST formally deprecated use of SHA-1 in 2011 and disallowed its use for digital signatures in 2013, and declared that it should be phased out by 2030. However, SHA-1 is still secure for HMAC. wiki
Usage
You could use like this:
sha1('Message to hash');
var hash = sha1.create();
hash.update('Message to hash');
hash.hex();
sha1.hmac('key', 'Message to hash');
var hash = sha1.hmac.create('key');
hash.update('Message to hash');
hash.hex();
Node.js
If you use node.js, you should require the module first:
var sha1 = require('js-sha1');
TypeScript
If you use TypeScript, you can import like this:
import { sha1 } from 'js-sha1';
RequireJS
It supports AMD:
require(['your/path/sha1.js'], function(sha1) {
});
Example
sha1('');
sha1('The quick brown fox jumps over the lazy dog');
sha1('The quick brown fox jumps over the lazy dog.');
sha1('中文');
sha1([]);
sha1(new Uint8Array([]));
sha1('');
sha1.hex('');
sha1.array('');
sha1.digest('');
sha1.arrayBuffer('');
sha1.hmac.hex('key', 'Message to hash');
sha1.hmac.array('key', 'Message to hash');
License
The project is released under the MIT license.
Contact
The project's website is located at https://github.com/emn178/js-sha1
Author: Chen, Yi-Cyuan (emn178@gmail.com)