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. Любая помощь будет оценена. Спасибо.