Go
Go
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 Go Downloads
success := false
crypt := chilkat.NewCrypt2()
crypt.SetHashAlgorithm("sha256")
crypt.SetCharset("utf-8")
bd := chilkat.NewBinData()
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.
bd.AppendString(s,"utf-8")
success = crypt.HashBeginString(s)
i := 0
for i < 200 {
bd.AppendString(s,"utf-8")
crypt.HashMoreString(s)
i = i + 1
}
// Get the hash in base64 format.
crypt.SetEncodingMode("base64")
encodedHash := crypt.HashFinalENC()
fmt.Println("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 = crypt.HashBdENC(bd)
fmt.Println("Hash computed in 1 step: ", *encodedHash)
// Output:
// Hash computed in chunks: unwkVff61k40roRIJizaknreScHaL6frWe37kydXbZQ=
// Hash computed in 1 step: unwkVff61k40roRIJizaknreScHaL6frWe37kydXbZQ=
crypt.DisposeCrypt2()
bd.DisposeBinData()