Sample code for 30+ languages & platforms
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

PowerBuilder
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