Wondering what’s next for npm?Check out our public roadmap! »


    5.4.0 • Public • Published



    The missing crypto module for Node.js. Bcrypto provides you with a consistent interface across Node.js and the browser. It is implemented as a Node.js addon for C libraries libtorsion and libsecp256k1 with corresponding implementations in JavaScript.


    const rng = require('bcrypto/lib/random');
    const entropy = rng.randomBytes(32);
    const Hash256 = require('bcrypto/lib/hash256');
    const digest = Hash256.digest(Buffer.alloc(32, 0xaa));


    See the ./lib directory for available modules and APIs.


    nodejs (linux) nodejs (macos) nodejs (win) browser
    aead c (libtorsion¹) c (libtorsion¹) c (libtorsion) js
    aes c (libtorsion) c (libtorsion) c (libtorsion) js
    bcrypt c (libtorsion) c (libtorsion) c (libtorsion) js
    blake2b{160,256,384,512} c (libtorsion) c (libtorsion) c (libtorsion) js
    blake2s{128,160,224,256} c (libtorsion) c (libtorsion) c (libtorsion) js
    bn js w/ bigint js w/ bigint js w/ bigint js
    chacha20 c (libtorsion¹) c (libtorsion¹) c (libtorsion) js
    cshake{128,256} c (libtorsion¹) c (libtorsion¹) c (libtorsion) js
    ctr-drbg c (libtorsion) c (libtorsion) c (libtorsion) js
    dsa c (libtorsion) c (libtorsion) c (libtorsion) js
    eb2k c (libtorsion) c (libtorsion) c (libtorsion) js
    ecies c (libtorsion¹) c (libtorsion¹) c (libtorsion) js
    ed25519 c (libtorsion) c (libtorsion) c (libtorsion) js
    ed448 c (libtorsion) c (libtorsion) c (libtorsion) js
    gost94 c (libtorsion) c (libtorsion) c (libtorsion) js
    hash160 c (libtorsion¹) c (libtorsion¹) c (libtorsion) js
    hash256 c (libtorsion¹) c (libtorsion¹) c (libtorsion) js
    hash-drbg c (libtorsion) c (libtorsion) c (libtorsion) js
    hkdf c (libtorsion) c (libtorsion) c (libtorsion) js
    hmac-drbg c (libtorsion) c (libtorsion) c (libtorsion) js
    keccak/sha3{224,256,384,512} c (libtorsion¹) c (libtorsion¹) c (libtorsion) js
    kmac{128,256} c (libtorsion¹) c (libtorsion¹) c (libtorsion) js
    md{2,4,5} c (libtorsion) c (libtorsion) c (libtorsion) js
    md5sha1 c (libtorsion) c (libtorsion) c (libtorsion) js
    merkle js js js js
    mrkl js js js js
    murmur3 c (libtorsion) c (libtorsion) c (libtorsion) js
    p{192,224,256,384,521} c (libtorsion) c (libtorsion) c (libtorsion) js
    pbkdf2 c (libtorsion) c (libtorsion) c (libtorsion) js
    pgp js js js js
    poly1305 c (libtorsion) c (libtorsion) c (libtorsion) js
    random c (openssl²) c (openssl²) c (openssl²) js³
    rc4 c (libtorsion) c (libtorsion) c (libtorsion) js
    ripemd160 c (libtorsion) c (libtorsion) c (libtorsion) js
    rsa c (libtorsion) c (libtorsion) c (libtorsion) js
    rsaies c (libtorsion¹) c (libtorsion¹) c (libtorsion) js
    salsa20 c (libtorsion¹) c (libtorsion¹) c (libtorsion) js
    schnorr c (libtorsion) c (libtorsion) c (libtorsion) js
    scrypt c (libtorsion) c (libtorsion) c (libtorsion) js
    secp256k1 c (libsecp256k1²) c (libsecp256k1²) c (libsecp256k1²) js
    sha1 c (libtorsion) c (libtorsion) c (libtorsion) js
    sha{224,256,384,512} c (libtorsion¹) c (libtorsion¹) c (libtorsion) js
    shake{128,256} c (libtorsion¹) c (libtorsion¹) c (libtorsion) js
    siphash c (libtorsion) c (libtorsion) c (libtorsion) js
    ssh js js js js
    whirlpool c (libtorsion) c (libtorsion) c (libtorsion) js
    x25519 c (libtorsion) c (libtorsion) c (libtorsion) js
    x448 c (libtorsion) c (libtorsion) c (libtorsion) js


    1. with x86-64 assembly
    2. optionally with libtorsion
    3. using the webcrypto api

    Contribution and License Agreement

    If you contribute code to this project, you are implicitly allowing your code to be distributed under the MIT license. You are also implicitly verifying that all code is your original work. </legalese>


    • Copyright (c) 2017-2019, Christopher Jeffrey (MIT License).

    See LICENSE for more info.


    npm i bcrypto

    DownloadsWeekly Downloads






    Unpacked Size

    5.73 MB

    Total Files


    Last publish


    • avatar