PowerBuilder
PowerBuilder
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 PowerBuilder Downloads
integer li_rc
integer li_Success
oleobject loo_Crypt
oleobject loo_Bd
string s
integer i
string ls_EncodedHash
li_Success = 0
loo_Crypt = create oleobject
li_rc = loo_Crypt.ConnectToNewObject("Chilkat.Crypt2")
if li_rc < 0 then
destroy loo_Crypt
MessageBox("Error","Connecting to COM object failed")
return
end if
loo_Crypt.HashAlgorithm = "sha256"
loo_Crypt.Charset = "utf-8"
loo_Bd = create oleobject
li_rc = loo_Bd.ConnectToNewObject("Chilkat.BinData")
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.
loo_Bd.AppendString(s,"utf-8")
li_Success = loo_Crypt.HashBeginString(s)
i = 0
do while i < 200
loo_Bd.AppendString(s,"utf-8")
loo_Crypt.HashMoreString(s)
i = i + 1
loop
// Get the hash in base64 format.
loo_Crypt.EncodingMode = "base64"
ls_EncodedHash = loo_Crypt.HashFinalENC()
Write-Debug "Hash computed in chunks: " + ls_EncodedHash
// Let's alternatively compute the hash of the entire amount of data at once,
// to show the hash computation is the same:
ls_EncodedHash = loo_Crypt.HashBdENC(loo_Bd)
Write-Debug "Hash computed in 1 step: " + ls_EncodedHash
// Output:
// Hash computed in chunks: unwkVff61k40roRIJizaknreScHaL6frWe37kydXbZQ=
// Hash computed in 1 step: unwkVff61k40roRIJizaknreScHaL6frWe37kydXbZQ=
destroy loo_Crypt
destroy loo_Bd