パッケージの詳細

js-sha1

emn178962.6kMIT0.7.0

A simple SHA1 hash function for JavaScript supports UTF-8 encoding.

sha, sha1, encryption, cryptography

readme

js-sha1

Build Status Coverage Status
NPM
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();

// HMAC
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(''); // da39a3ee5e6b4b0d3255bfef95601890afd80709
sha1('The quick brown fox jumps over the lazy dog'); // 2fd4e1c67a2d28fced849ee1bb76e7391b93eb12
sha1('The quick brown fox jumps over the lazy dog.'); // 408d94384216f890ff7a0c3528e8bed1e0b01621

// It also supports UTF-8 encoding
sha1('中文'); // 7be2d2d20c106eee0836c9bc2b939890a78e8fb3

// It also supports byte `Array`, `Uint8Array`, `ArrayBuffer`
sha1([]); // da39a3ee5e6b4b0d3255bfef95601890afd80709
sha1(new Uint8Array([])); // da39a3ee5e6b4b0d3255bfef95601890afd80709

// Different output
sha1(''); // da39a3ee5e6b4b0d3255bfef95601890afd80709
sha1.hex(''); // da39a3ee5e6b4b0d3255bfef95601890afd80709
sha1.array(''); // [218, 57, 163, 238, 94, 107, 75, 13, 50, 85, 191, 239, 149, 96, 24, 144, 175, 216, 7, 9]
sha1.digest(''); // [218, 57, 163, 238, 94, 107, 75, 13, 50, 85, 191, 239, 149, 96, 24, 144, 175, 216, 7, 9]
sha1.arrayBuffer(''); // ArrayBuffer

// HMAC
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)

更新履歴

Change Log

v0.7.0 / 2024-01-24

Added

  • TypeScript interfaces. #6, #9
  • HMAC feature.
  • support for web worker. #14

Fixed

  • deprecated new Buffer, replace with Buffer.from. #10
  • dependencies and security issues.
  • refactor: simplify formatMessage internal logic.
  • Generates incorrect hash in some cases.

Changed

  • remove eval and use require directly. #8
  • throw error by Error oject.
  • throw error if update after finalize
  • use unsigned right shift.

v0.6.0 / 2017-12-21

Fixed

  • incorrect result when first bit is 1 of bytes.

Changed

  • prevent webpack to require dependencies.

v0.5.0 / 2017-10-31

Fixed

  • incorrect result when file size >= 512M.

v0.4.1 / 2016-12-30

Fixed

  • ArrayBuffer dosen't work in Webpack.

v0.4.0 / 2016-12-05

Added

  • update method.
  • support Array output.
  • support ArrayBuffer output.
  • support AMD.

v0.3.0 / 2015-03-04

Added

  • support ArrayBuffer input.

    Changed

  • improve performance.

v0.2.0 / 2015-02-16

Added

  • support byte array input.
  • test cases.

    Removed

  • ascii parameter.

    Changed

  • improve performance.

v0.1.3 / 2015-01-07

Added

  • bower package.
  • travis.
  • coveralls.

    Fixed

  • JSHint warnings.

v0.1.2 / 2014-07-27

Fixed

  • accents bug.

v0.1.1 / 2014-01-05

Changed

  • update license.

v0.1.0 / 2014-01-04

Added

  • initial release.