Chilkat HOME Android™ Classic ASP C C++ C# Mono C# .NET Core C# C# UWP/WinRT DataFlex Delphi ActiveX Delphi DLL Visual FoxPro Java Lianja MFC Objective-C Perl PHP ActiveX PHP Extension PowerBuilder PowerShell PureBasic CkPython Chilkat2-Python Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ Visual Basic 6.0 VB.NET VB.NET UWP/WinRT VBScript Xojo Plugin Node.js Excel Go
(VB.NET UWP/WinRT) 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. Dim crypt As New Chilkat.Crypt2 ' Imagine we want to SHA-1 hash this A9133F6DC63E85BE0619763F8975CA076FF91B95CB6F121CD21C016143315E11B9ED4374F174B2CC Dim strToHash As String = "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.Charset = "hex" crypt.HashAlgorithm = "sha1" ' Get the hash result in lowercase hex crypt.EncodingMode = "hex_lower" Dim hashValue As String = crypt.HashStringENC(strToHash) Debug.WriteLine("hash of decoded hex bytes: " & hashValue) ' 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.Charset = "us-ascii" ' The EncodingMode property defines the binary encoding (hex, base64, etc.) of the hash returned as an encoded string. crypt.EncodingMode = "hex" crypt.HashAlgorithm = "sha1" hashValue = crypt.HashStringENC(strToHash) Debug.WriteLine("hash of us-ascii bytes: " & hashValue) ' The result is: 2A7500F88734F4B19C79852CA0FF3E1C561F31C8 ' |
© 2000-2022 Chilkat Software, Inc. All Rights Reserved.