Перевод Java 256-битного шифрования на основе пароля на C#

Мне нужно реализовать API в C#, который будет шифровать секреты идентично API, написанному на Java.

Код Java выглядит следующим образом

SecretKeyFactory factory = SecretKeyFactory.getInstance("PBKDF2WithHmacSHA256");
KeySpec spec = new PBEKeySpec(password, salt, iteration, size);
SecretKey tmp = factory.generateSecret(spec);
SecretKey secret = new SecretKeySpec(tmp.getEncoded(), "HmacSHA256");

Моя попытка на C# выглядит так

var secret = KeyDerivation.Pbkdf2(
    password, salt, KeyDerivationPrf.HMACSHA256, iteration, size);

Когда я сравниваю сгенерированные секреты, преобразованные в базу 64, они не совпадают. Их длина составляет пару сотен символов.

Чего не хватает в коде C# для генерации того же секрета, что и Java API?

0 ответов

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