Sample code for 30+ languages & platforms
Node.js

Password_Digest = Base64 (SHA-1 ( nonce + created + SHA-1 (password) ) )

See more Encryption Examples

Demonstrates how to compute:
Password_Digest = Base64 (SHA-1 ( nonce + created + SHA-1 (password)))

Chilkat Node.js Downloads

Node.js
NODEJS_PRELUDE

function chilkatExample() {

    //  This example requires the Chilkat API to have been previously unlocked.
    //  See Global Unlock Sample for sample code.

    var password = "secret";

    var crypt = new chilkat.Crypt2();
    crypt.HashAlgorithm = "SHA-1";
    crypt.EncodingMode = "base64";

    //  Generate a 16-byte random nonce
    var prng = new chilkat.Prng();
    var bd = new chilkat.BinData();
    prng.GenRandomBd(16,bd);

    //  Get the current date/time in a string with this format: 2010-06-08T07:26:50Z
    var dt = new chilkat.CkDateTime();
    dt.SetFromCurrentSystemTime();
    var created = dt.GetAsTimestamp(false);
    bd.AppendString(created,"utf-8");

    //  This example wishes to calculate a password digest like this:
    //  Password_Digest = Base64 ( SHA-1 ( nonce + created + SHA-1(password) ) )

    //  First SHA-1 digest the password...
    var passwordSha1 = crypt.HashStringENC(password);
    //  Append the 20 binary bytes of the SHA1 hash to bd, which already contains the nonce and created date/time.
    bd.AppendEncoded(passwordSha1,"base64");

    var passwordDigest = crypt.HashBdENC(bd);

    console.log("Base64 password digest = " + passwordDigest);

}

chilkatExample();