Creates a message digest hash in hexadecimal format from data in a hexadecimal-encoded string. The hash algorithm to use is passed in the options parameter.
Public Declare Function HASH_HexFromHex Lib "diCryptoSys.dll"
(ByVal strOutput As String, ByVal nMaxChars As Long, ByVal strMsgHex As String, ByVal nOptions As Long) As Long
nRet = HASH_HexFromHex(strOutput, nMaxChars, strMsgHex, nOptions)
long __stdcall HASH_HexFromHex(char *szOutput, long nMaxChars, const char *szMsgHex, long nOptions);
If successful, the return value is the number of characters in the output string; otherwise it returns a negative error code.
Public Function hashHexFromHex
(szMsgHex As String, nOptions As Long) As String
static Hash.hex_from_hex(datahex, alg=Alg.SHA1)
For the "raw" VBA/C function, the user must allocate an output string buffer szOutput of the required length.
Specify a zero nOutChars or an empty string for szOutput to find the required length of the output string.
C/C++ users must add one to this value when allocating memory.
The maximum number of characters is API_MAX_HASH_CHARS
.
The final digest will be truncated to the specified length if less than the
expected size. Only lower-case letters [a-f] are used in the output.
Dim strDigest As String
Dim nRet As Long
Dim strData As String
strDigest = String(API_SHA1_CHARS, " ")
strData = "616263"
nRet = HASH_HexFromHex(strDigest, Len(strDigest), strData, API_HASH_SHA1)
Debug.Print strDigest
Dim lpMessage() As Byte
lpMessage = StrConv("abc", vbFromUnicode)
Debug.Print "lpMessage=" & cnvHexStrFromBytes(lpMessage)
Debug.Print "OK:" & vbCrLf & "ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad"
Debug.Print hashHexFromBytes(lpMessage, API_HASH_SHA256)
Debug.Print hashHexFromHex("616263", API_HASH_SHA256)
Debug.Print hashHexFromFile("abc.txt", API_HASH_SHA256)
Debug.Print cnvHexStrFromBytes(hashBytes(lpMessage, API_HASH_SHA256))
Debug.Print cnvHexStrFromBytes(hashFile("abc.txt", API_HASH_SHA256))