C# MD5 для CryptoJS и почтальона

Привет, может кто-нибудь помочь мне в сопоставлении моего кода C# для cryptojs

вот метод

   private string getRequestBase64content(HttpRequest req)
    {
        byte[] hash = ComputeHash(req.Body);
        var requestContentBase64String = "";
        if (hash != null)
        {
            requestContentBase64String = Convert.ToBase64String(hash);
        }

        return requestContentBase64String;
    }

и вот код для computehash

       private byte[] ComputeHash(Stream body)
    {
        using (MD5 md5 = MD5.Create())
        {
            byte[] hash = null;
            var content = ReadFully(body);
            if (content.Length != 0)
            {
                hash = md5.ComputeHash(content);
            }
            return hash;
        }
    }

    private byte[] ReadFully(Stream input)
    {
        byte[] buffer = new byte[16 * 1024];
        using (MemoryStream ms = new MemoryStream())
        {
            int read;
            while ((read = input.Read(buffer, 0, buffer.Length)) > 0)
            {
                ms.Write(buffer, 0, read);
            }
            return ms.ToArray();
        }
    }

Я пытаюсь сопоставить его с помощью почтальона, но не повезло, что значения разные, вот мой сценарий предварительного запроса

var requestBody = "";
var firstpass = true;
for(var param in request.data)
{
    if(!firstpass){
        requestBody += "&";
    }
    requestBody += param + "=" + request.data[param];
    firstpass = false;
}

var requestContentBase64String = "";
if(requestBody){
    // MD5 hash and convert the request body string to base 64
    requestContentBase64String = CryptoJS.MD5(requestBody).toString(CryptoJS.enc.Base64);
}

postman.setGlobalVariable("signatureContent", requestContentBase64String);

Кстати, я использую ядро ​​asp.net. Любая помощь будет оценена. Спасибо.

0 ответов

Другие вопросы по тегам