Как получить правильный Hash Key используя PBKDF2 используя c # - PullRequest
0 голосов
/ 28 января 2019

Я пытаюсь изучить механизм хеширования (PBKDF2 + статическая соль) с помощью c # (Rfc2898DeriveBytes), у меня есть консольное приложение 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

Фактический результат

� (кБ٬���� Ry�` [aJ�

Может кто-нибудь помочь мне в этом? Заранее спасибо.

...