我需要在C#中实现一个API,它将以与java编写的API相同的方式加密秘密。
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相同的秘密?