integrity

Data integrity checking utilities

Usage no npm install needed!

<script type="module">
  import integrity from 'https://cdn.skypack.dev/integrity';
</script>

README

Integrity.js

Integrity.js is a small collection of utilities for checking integrity of a file.

It makes use of the es6-promise polyfill to provide promise functionality.

TODO

  • SHA-1, SHA-256, SHA-384, SHA-512
  • CRC16

Install

Node:

npm install integrity

Bower:

bower install integrity

Use

Node:

var integrity = require('integrity');

Bower:

<script src="bower_components/integrity/dist/integrity.js"></script>

Supported Inputs

All methods support the following inputs:

  • Buffer (Node)
  • String
  • ArrayBuffer
  • ReadableStream (Node)
  • File (HTML5)

Supported Algorithms

  • CRC32 (built in)
  • MD5 (spark-md5 for browers, crypto for Node)

HTML5 File Example

document.querySelector('#file').addEventListener('change', function(e) {
    var file = e.target.files[0],
        reader = new FileReader();

    reader.onloadend = function(e) {
        // e.target.result is an ArrayBuffer
        integrity.crc32(e.target.result).then(function(c) {
            console.log(c.toString(16));
        });
    };

    reader.readAsArrayBuffer(file);
});

CRC32

Example:

integrity.crc32('123456789').then(function(crc) {
    console.log(crc); // 0xCBF43926
});
integrity.crc32(new Buffer('123456789')).then(function(crc) {
    console.log(crc); // 0xCBF43926
});
integrity.crc32(fs.createReadStream('test')).then(function(crc) {
    console.log(crc); // CRC32 of file 'test'
});