|  | 
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
| (Perl) 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. 
 use chilkat(); # This example assumes the Chilkat API to have been previously unlocked. # See Global Unlock Sample for sample code. $crypt = chilkat::CkCrypt2->new(); # Imagine we want to SHA-1 hash this A9133F6DC63E85BE0619763F8975CA076FF91B95CB6F121CD21C016143315E11B9ED4374F174B2CC $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... $crypt->put_Charset("hex"); $crypt->put_HashAlgorithm("sha1"); # Get the hash result in lowercase hex $crypt->put_EncodingMode("hex_lower"); $hashValue = $crypt->hashStringENC($strToHash); print "hash of decoded hex bytes: " . $hashValue . "\r\n"; # 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: $crypt->put_Charset("us-ascii"); # The EncodingMode property defines the binary encoding (hex, base64, etc.) of the hash returned as an encoded string. $crypt->put_EncodingMode("hex"); $crypt->put_HashAlgorithm("sha1"); $hashValue = $crypt->hashStringENC($strToHash); print "hash of us-ascii bytes: " . $hashValue . "\r\n"; # The result is: 2A7500F88734F4B19C79852CA0FF3E1C561F31C8 # | ||||
© 2000-2025 Chilkat Software, Inc. All Rights Reserved.