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