Tcl
Tcl
Example: Hash Text in Chunks
Shows how to generate a final hash, like SHA-256, for a large text by processing it in chunks.Chilkat Tcl Downloads
load ./chilkat.dll
set success 0
set crypt [new_CkCrypt2]
CkCrypt2_put_HashAlgorithm $crypt "sha256"
CkCrypt2_put_Charset $crypt "utf-8"
set bd [new_CkBinData]
set s "The quick brown fox jumped over the lazy dog.\r\n"
# Accumulate the text in a StringBuilder. We'll demonstrate hashing the text in chunks,
# and then also hashing the entire text at once to show the results are the same.
CkBinData_AppendString $bd $s "utf-8"
set success [CkCrypt2_HashBeginString $crypt $s]
set i 0
while {$i < 200} {
CkBinData_AppendString $bd $s "utf-8"
CkCrypt2_HashMoreString $crypt $s
set i [expr $i + 1]
}
# Get the hash in base64 format.
CkCrypt2_put_EncodingMode $crypt "base64"
set encodedHash [CkCrypt2_hashFinalENC $crypt]
puts "Hash computed in chunks: $encodedHash"
# Let's alternatively compute the hash of the entire amount of data at once,
# to show the hash computation is the same:
set encodedHash [CkCrypt2_hashBdENC $crypt $bd]
puts "Hash computed in 1 step: $encodedHash"
# Output:
# Hash computed in chunks: unwkVff61k40roRIJizaknreScHaL6frWe37kydXbZQ=
# Hash computed in 1 step: unwkVff61k40roRIJizaknreScHaL6frWe37kydXbZQ=
delete_CkCrypt2 $crypt
delete_CkBinData $bd