VBA是否有Hash_HMAC?

您好我想encryption一个string来调用VBA的Web服务。 我需要在VBA中执行以下function,并在PHP中使用示例代码。 这里是PHP代码。 有谁知道如何在VBA中做到这一点?

$binaryHash = hash_hmac('sha512', $url.$timestamp, $ws_session_array["sharedSecret"], true); $hash = base64_encode($binaryHash); 

这是你需要的:

 Public Function Base64_HMACSHA1(ByVal sTextToHash As String, ByVal sSharedSecretKey As String) Dim asc As Object, enc As Object Dim TextToHash() As Byte Dim SharedSecretKey() As Byte Set asc = CreateObject("System.Text.UTF8Encoding") Set enc = CreateObject("System.Security.Cryptography.HMACSHA1") TextToHash = asc.Getbytes_4(sTextToHash) SharedSecretKey = asc.Getbytes_4(sSharedSecretKey) enc.Key = SharedSecretKey Dim bytes() As Byte bytes = enc.ComputeHash_2((TextToHash)) Base64_HMACSHA1 = EncodeBase64(bytes) Set asc = Nothing Set enc = Nothing End Function Private Function EncodeBase64(ByRef arrData() As Byte) As String Dim objXML As MSXML2.DOMDocument Dim objNode As MSXML2.IXMLDOMElement Set objXML = New MSXML2.DOMDocument ' byte array to base64 Set objNode = objXML.createElement("b64") objNode.DataType = "bin.base64" objNode.nodeTypedValue = arrData EncodeBase64 = objNode.Text Set objNode = Nothing Set objXML = Nothing End Function