Sample code for 30+ languages & platforms
Java

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 Java Downloads

Chilkat2 Java
import com.chilkatsoft.chilkat2.BinData;
import com.chilkatsoft.chilkat2.Crypt2;
import com.chilkatsoft.chilkat2.DateTime;
import com.chilkatsoft.chilkat2.Prng;

public class ChilkatExample {

    public static void main(String[] args) {
        // This example requires the Chilkat API to have been previously unlocked.
        // See Global Unlock Sample for sample code.

        String password = "secret";

        Crypt2 crypt = new Crypt2();
        crypt.setHashAlgorithm("SHA-1");
        crypt.setEncodingMode("base64");

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

        // Get the current date/time in a string with this format: 2010-06-08T07:26:50Z
        DateTime dt = new DateTime();
        dt.setFromCurrentSystemTime();
        String 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...
        String 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");

        String passwordDigest = crypt.hashBdENC(bd);

        System.out.println("Base64 password digest = " + passwordDigest);
    }
}