Sample code for 30+ languages & platforms
Tcl

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

Tcl

load ./chilkat.dll

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

set password "secret"

set crypt [new_CkCrypt2]

CkCrypt2_put_HashAlgorithm $crypt "SHA-1"
CkCrypt2_put_EncodingMode $crypt "base64"

# Generate a 16-byte random nonce
set prng [new_CkPrng]

set bd [new_CkBinData]

CkPrng_GenRandomBd $prng 16 $bd

# Get the current date/time in a string with this format: 2010-06-08T07:26:50Z
set dt [new_CkDateTime]

CkDateTime_SetFromCurrentSystemTime $dt
set created [CkDateTime_getAsTimestamp $dt 0]
CkBinData_AppendString $bd $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...
set passwordSha1 [CkCrypt2_hashStringENC $crypt $password]
# Append the 20 binary bytes of the SHA1 hash to bd, which already contains the nonce and created date/time.
CkBinData_AppendEncoded $bd $passwordSha1 "base64"

set passwordDigest [CkCrypt2_hashBdENC $crypt $bd]

puts "Base64 password digest = $passwordDigest"

delete_CkCrypt2 $crypt
delete_CkPrng $prng
delete_CkBinData $bd
delete_CkDateTime $dt