![]() |
Chilkat • HOME • Android™ • AutoIt • C • C# • C++ • Chilkat2-Python • CkPython • Classic ASP • DataFlex • Delphi DLL • Go • Java • Node.js • Objective-C • PHP Extension • Perl • PowerBuilder • PowerShell • PureBasic • Ruby • SQL Server • Swift • Tcl • Unicode C • Unicode C++ • VB.NET • VBScript • Visual Basic 6.0 • Visual FoxPro • Xojo Plugin
(AutoIt) Hashing Encoded DataThis example explains how it's important to know exactly what bytes are getting hashed when working with encoded data, such as hex, base64, etc.
; This example assumes the Chilkat API to have been previously unlocked. ; See Global Unlock Sample for sample code. $oCrypt = ObjCreate("Chilkat.Crypt2") ; Imagine we want to SHA-1 hash this A9133F6DC63E85BE0619763F8975CA076FF91B95CB6F121CD21C016143315E11B9ED4374F174B2CC Local $strToHash = "A9133F6DC63E85BE0619763F8975CA076FF91B95CB6F121CD21C016143315E11B9ED4374F174B2CC" ; The question is: Do we want to hash the bytes 0xA9, 0x13, 0x3F... ; or do we want to literally hash each us-ascii byte: 'A', '9', '1', '3'. ; The results will obviously be different depending on what bytes are actually hashed. ; To hash the decoded bytes (i.e. 0xA9, 0x13, 0x3F...) we do this: ; "hex" is not an actual character encoding. It's a special value to be used to tell Chilkat to hex decode ; the string and pass the decoded bytes to the hash algorithm... $oCrypt.Charset = "hex" $oCrypt.HashAlgorithm = "sha1" ; Get the hash result in lowercase hex $oCrypt.EncodingMode = "hex_lower" Local $sHashValue = $oCrypt.HashStringENC($strToHash) ConsoleWrite("hash of decoded hex bytes: " & $sHashValue & @CRLF) ; The result is 7a4a2ba73811fab98b4baaee2df164cbdd0d8e8e ; This is how to hash the us-ascii byte values: ; The Charset property defines the byte representation of the string passed to the hash algorithm: $oCrypt.Charset = "us-ascii" ; The EncodingMode property defines the binary encoding (hex, base64, etc.) of the hash returned as an encoded string. $oCrypt.EncodingMode = "hex" $oCrypt.HashAlgorithm = "sha1" $sHashValue = $oCrypt.HashStringENC($strToHash) ConsoleWrite("hash of us-ascii bytes: " & $sHashValue & @CRLF) ; The result is: 2A7500F88734F4B19C79852CA0FF3E1C561F31C8 ; |
© 2000-2025 Chilkat Software, Inc. All Rights Reserved.