PureBasic
PureBasic
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 PureBasic Downloads
IncludeFile "CkCrypt2.pb"
IncludeFile "CkBinData.pb"
Procedure ChilkatExample()
success.i = 0
crypt.i = CkCrypt2::ckCreate()
If crypt.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
CkCrypt2::setCkHashAlgorithm(crypt, "sha256")
CkCrypt2::setCkCharset(crypt, "utf-8")
bd.i = CkBinData::ckCreate()
If bd.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
s.s = "The quick brown fox jumped over the lazy dog." + Chr(13) + Chr(10)
; 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::ckAppendString(bd,s,"utf-8")
success = CkCrypt2::ckHashBeginString(crypt,s)
i.i = 0
While i < 200
CkBinData::ckAppendString(bd,s,"utf-8")
CkCrypt2::ckHashMoreString(crypt,s)
i = i + 1
Wend
; Get the hash in base64 format.
CkCrypt2::setCkEncodingMode(crypt, "base64")
encodedHash.s = CkCrypt2::ckHashFinalENC(crypt)
Debug "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:
encodedHash = CkCrypt2::ckHashBdENC(crypt,bd)
Debug "Hash computed in 1 step: " + encodedHash
; Output:
; Hash computed in chunks: unwkVff61k40roRIJizaknreScHaL6frWe37kydXbZQ=
; Hash computed in 1 step: unwkVff61k40roRIJizaknreScHaL6frWe37kydXbZQ=
CkCrypt2::ckDispose(crypt)
CkBinData::ckDispose(bd)
ProcedureReturn
EndProcedure