如何使用c#使用PBKDF2获取正确的哈希密钥

时间:2019-01-28 11:58:59

标签: c# .net hash pbkdf2 rfc2898

我正在尝试使用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�

有人可以帮我吗?预先感谢。

0 个答案:

没有答案