Exciting release!Introducing "safe npm". Learn more
Socket
Log inDemoInstall

@exodus/js-sha3

Package Overview
Dependencies
0
Maintainers
34
Versions
2
Issues
File Explorer

Advanced tools

@exodus/js-sha3

A simple SHA-3 / Keccak / Shake hash function for JavaScript supports UTF-8 encoding.

    0.6.1-exodus1latest
    GitHub

Version published
Maintainers
34
Weekly downloads
407
decreased by-55.32%

Weekly downloads

Readme

Source

js-sha3

Build Status Coverage Status
NPM

A simple SHA-3 / Keccak / Shake hash function for JavaScript supports UTF-8 encoding.

Notice

  • Sha3 methods has been renamed to keccak since v0.2.0. It means that sha3 methods of v0.1.x are equal to keccak methods of v0.2.x and later.
  • buffer method is deprecated. This maybe confuse with Buffer in node.js. Please use arrayBuffer instead.

Demo

SHA3-512 Online
SHA3-384 Online
SHA3-256 Online
SHA3-224 Online
Keccak-512 Online
Keccak-384 Online
Keccak-256 Online
Keccak-224 Online
Shake128 Online
Shake256 Online

Download

Compress
Uncompress

Installation

You can also install js-sha3 by using Bower.

bower install js-sha3

For node.js, you can use this command to install:

npm install js-sha3

Usage

You could use like this:

sha3_512('Message to hash'); sha3_384('Message to hash'); sha3_256('Message to hash'); sha3_224('Message to hash'); keccak512('Message to hash'); keccak384('Message to hash'); keccak256('Message to hash'); keccak224('Message to hash'); shake128('Message to hash', 256); shake256('Message to hash', 512); cshake128('Message to hash', 256, 'function name', 'customization'); cshake256('Message to hash', 512, 'function name', 'customization'); kmac128('key', 'Message to hash', 256, 'customization'); kmac256('key', 'Message to hash', 512, 'customization'); // Support ArrayBuffer output var buffer = keccak224.buffer('Message to hash'); // Support Array output var buffer = keccak224.array('Message to hash'); // update hash sha3_512.update('Message ').update('to ').update('hash').hex(); // specify shake output bits at first update shake128.update('Message ', 256).update('to ').update('hash').hex(); // or to use create var hash = sha3_512.create(); hash.update('...'); hash.update('...'); hash.hex(); // specify shake output bits when creating var hash = shake128.create(256); hash.update('...'); hash.update('...'); hash.hex(); // specify cshake output bits, function name and customization when creating var hash = cshake128.create(256, 'function name', 'customization'); // specify kmac key, output bits and customization when creating var hash = kmac128.create('key', 256, 'customization');

If you use node.js, you should require the module first:

sha3_512 = require('js-sha3').sha3_512; sha3_384 = require('js-sha3').sha3_384; sha3_256 = require('js-sha3').sha3_256; sha3_224 = require('js-sha3').sha3_224; keccak512 = require('js-sha3').keccak512; keccak384 = require('js-sha3').keccak384; keccak256 = require('js-sha3').keccak256; keccak224 = require('js-sha3').keccak224; shake128 = require('js-sha3').shake128; shake256 = require('js-sha3').shake256; cshake128 = require('js-sha3').cshake128; cshake256 = require('js-sha3').cshake256; kmac128 = require('js-sha3').kmac128; kmac256 = require('js-sha3').kmac256;

If you use TypeScript, you can import like this:

import { sha3_512 } from 'js-sha3';

Example

Code

sha3_512(''); // a69f73cca23a9ac5c8b567dc185a756e97c982164fe25859e0d1dcc1475c80a615b2123af1f5f94c11e3e9402c3ac558f500199d95b6d3e301758586281dcd26 sha3_512('The quick brown fox jumps over the lazy dog'); // 01dedd5de4ef14642445ba5f5b97c15e47b9ad931326e4b0727cd94cefc44fff23f07bf543139939b49128caf436dc1bdee54fcb24023a08d9403f9b4bf0d450 sha3_512('The quick brown fox jumps over the lazy dog.'); // 18f4f4bd419603f95538837003d9d254c26c23765565162247483f65c50303597bc9ce4d289f21d1c2f1f458828e33dc442100331b35e7eb031b5d38ba6460f8 sha3_384(''); // 0c63a75b845e4f7d01107d852e4c2485c51a50aaaa94fc61995e71bbee983a2ac3713831264adb47fb6bd1e058d5f004 sha3_384('The quick brown fox jumps over the lazy dog'); // 7063465e08a93bce31cd89d2e3ca8f602498696e253592ed26f07bf7e703cf328581e1471a7ba7ab119b1a9ebdf8be41 sha3_384('The quick brown fox jumps over the lazy dog.'); // 1a34d81695b622df178bc74df7124fe12fac0f64ba5250b78b99c1273d4b080168e10652894ecad5f1f4d5b965437fb9 sha3_256(''); // a7ffc6f8bf1ed76651c14756a061d662f580ff4de43b49fa82d80a4b80f8434a sha3_256('The quick brown fox jumps over the lazy dog'); // 69070dda01975c8c120c3aada1b282394e7f032fa9cf32f4cb2259a0897dfc04 sha3_256('The quick brown fox jumps over the lazy dog.'); // a80f839cd4f83f6c3dafc87feae470045e4eb0d366397d5c6ce34ba1739f734d sha3_224(''); // 6b4e03423667dbb73b6e15454f0eb1abd4597f9a1b078e3f5b5a6bc7 sha3_224('The quick brown fox jumps over the lazy dog'); // d15dadceaa4d5d7bb3b48f446421d542e08ad8887305e28d58335795 sha3_224('The quick brown fox jumps over the lazy dog.'); // 2d0708903833afabdd232a20201176e8b58c5be8a6fe74265ac54db0 keccak512(''); // 0eab42de4c3ceb9235fc91acffe746b29c29a8c366b7c60e4e67c466f36a4304c00fa9caf9d87976ba469bcbe06713b435f091ef2769fb160cdab33d3670680e keccak512('The quick brown fox jumps over the lazy dog'); // d135bb84d0439dbac432247ee573a23ea7d3c9deb2a968eb31d47c4fb45f1ef4422d6c531b5b9bd6f449ebcc449ea94d0a8f05f62130fda612da53c79659f609 keccak512('The quick brown fox jumps over the lazy dog.'); // ab7192d2b11f51c7dd744e7b3441febf397ca07bf812cceae122ca4ded6387889064f8db9230f173f6d1ab6e24b6e50f065b039f799f5592360a6558eb52d760 keccak384(''); // 2c23146a63a29acf99e73b88f8c24eaa7dc60aa771780ccc006afbfa8fe2479b2dd2b21362337441ac12b515911957ff keccak384('The quick brown fox jumps over the lazy dog'); // 283990fa9d5fb731d786c5bbee94ea4db4910f18c62c03d173fc0a5e494422e8a0b3da7574dae7fa0baf005e504063b3 keccak384('The quick brown fox jumps over the lazy dog.'); // 9ad8e17325408eddb6edee6147f13856ad819bb7532668b605a24a2d958f88bd5c169e56dc4b2f89ffd325f6006d820b keccak256(''); // c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 keccak256('The quick brown fox jumps over the lazy dog'); // 4d741b6f1eb29cb2a9b9911c82f56fa8d73b04959d3d9d222895df6c0b28aa15 keccak256('The quick brown fox jumps over the lazy dog.'); // 578951e24efd62a3d63a86f7cd19aaa53c898fe287d2552133220370240b572d keccak224(''); // f71837502ba8e10837bdd8d365adb85591895602fc552b48b7390abd keccak224('The quick brown fox jumps over the lazy dog'); // 310aee6b30c47350576ac2873fa89fd190cdc488442f3ef654cf23fe keccak224('The quick brown fox jumps over the lazy dog.'); // c59d4eaeac728671c635ff645014e2afa935bebffdb5fbd207ffdeab shake128('', 256); // 7f9c2ba4e88f827d616045507605853ed73b8093f6efbc88eb1a6eacfa66ef26 shake256('', 512); // 46b9dd2b0ba88d13233b3feb743eeb243fcd52ea62b81b82b50c27646ed5762fd75dc4ddd8c0f200cb05019d67b592f6fc821c49479ab48640292eacb3b7c4be

It also supports UTF-8 encoding:

Code

sha3_512('中文'); // 059bbe2efc50cc30e4d8ec5a96be697e2108fcbf9193e1296192eddabc13b143c0120d059399a13d0d42651efe23a6c1ce2d1efb576c5b207fa2516050505af7 sha3_384('中文'); // 9fb5b99e3c546f2738dcd50a14e9aef9c313800c1bf8cf76bc9b2c3a23307841364c5a2d0794702662c5796fb72f5432 sha3_256('中文'); // ac5305da3d18be1aed44aa7c70ea548da243a59a5fd546f489348fd5718fb1a0 sha3_224('中文'); // 106d169e10b61c2a2a05554d3e631ec94467f8316640f29545d163ee keccak512('中文'); // 2f6a1bd50562230229af34b0ccf46b8754b89d23ae2c5bf7840b4acfcef86f87395edc0a00b2bfef53bafebe3b79de2e3e01cbd8169ddbb08bde888dcc893524 keccak384('中文'); // 743f64bb7544c6ed923be4741b738dde18b7cee384a3a09c4e01acaaac9f19222cdee137702bd3aa05dc198373d87d6c keccak256('中文'); // 70a2b6579047f0a977fcb5e9120a4e07067bea9abb6916fbc2d13ffb9a4e4eee keccak224('中文'); // f71837502ba8e10837bdd8d365adb85591895602fc552b48b7390abd

It also supports byte Array, Uint8Array, ArrayBuffer input:

Code

sha3_512([]); // a69f73cca23a9ac5c8b567dc185a756e97c982164fe25859e0d1dcc1475c80a615b2123af1f5f94c11e3e9402c3ac558f500199d95b6d3e301758586281dcd26 sha3_512(new Uint8Array([])); // a69f73cca23a9ac5c8b567dc185a756e97c982164fe25859e0d1dcc1475c80a615b2123af1f5f94c11e3e9402c3ac558f500199d95b6d3e301758586281dcd26 // ...

Benchmark

UTF8
ASCII

License

The project is released under the MIT license.

Contact

The project's website is located at https://github.com/emn178/js-sha3
Author: Chen, Yi-Cyuan (emn178@gmail.com)

Keywords

FAQs

Last updated on 06 Jan 2020

Did you know?

Socket installs a Github app to automatically flag issues on every pull request and report the health of your dependencies. Find out what is inside your node modules and prevent malicious activity before you update the dependencies.

Install Socket
Socket
support@socket.devSocket SOC 2 Logo

Product

  • Package Issues
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc