Sample code for 30+ languages & platforms
AutoIt

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

AutoIt
Local $bSuccess = False

$oCrypt = ObjCreate("Chilkat.Crypt2")
$oCrypt.HashAlgorithm = "sha256"
$oCrypt.Charset = "utf-8"

$oBd = ObjCreate("Chilkat.BinData")

Local $s = "The quick brown fox jumped over the lazy dog." & @CRLF

; 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.

$oBd.AppendString($s,"utf-8")
$bSuccess = $oCrypt.HashBeginString($s)

Local $i = 0
While $i < 200
    $oBd.AppendString($s,"utf-8")
    $oCrypt.HashMoreString($s)
    $i = $i + 1
Wend

; Get the hash in base64 format.
$oCrypt.EncodingMode = "base64"

Local $sEncodedHash = $oCrypt.HashFinalENC()
ConsoleWrite("Hash computed in chunks: " & $sEncodedHash & @CRLF)

; Let's alternatively compute the hash of the entire amount of data at once,
; to show the hash computation is the same:
$sEncodedHash = $oCrypt.HashBdENC($oBd)
ConsoleWrite("Hash computed in 1 step: " & $sEncodedHash & @CRLF)

; Output:

; Hash computed in chunks: unwkVff61k40roRIJizaknreScHaL6frWe37kydXbZQ=
; Hash computed in 1 step: unwkVff61k40roRIJizaknreScHaL6frWe37kydXbZQ=