我正在尝试使用c#(Rfc2898DeriveBytes)探索哈希机制(PBKDF2 +静态盐),我有poc控制台应用程序。但是事情就像没有得到预期的结果,而不是得到二进制结果。 这是我的代码:
using System;
using System.Security.Cryptography;
class Program
{
static void Main(string[] args)
{
string enrollmentID = "1800483366";
string testID = "bmat-practice-test-1";
string saltstring = "CEOngDKm3ZvnZIJNOg+u3z+o";
const int IterationIndex = 1000;
byte[] salt = Convert.FromBase64String(saltstring);
byte[] actualByte = PBKDF2(string.Concat(testID, enrollmentID), salt, IterationIndex, salt.Length);
string result = System.Text.Encoding.UTF8.GetString(actualByte);
Console.WriteLine(result);
Console.ReadKey();
}
private static byte[] PBKDF2(string concatenrollmenttestid, byte[] salt, int Pbkdf2Iterations, int HashByteSize)
{
Rfc2898DeriveBytes pbkdf2 = new Rfc2898DeriveBytes(concatenrollmenttestid, salt) { IterationCount = Pbkdf2Iterations };
return pbkdf2.GetBytes(HashByteSize);
}
}
预期结果:
71b614a33830226eb359b2f1ddca8373c3e3
实际结果
。((kB ٬���� Ry.` [aJ�
有人可以帮我吗?预先感谢。