public DeriveKey ( string password, byte salt ) : byte[] | ||
password | string | |
salt | byte | |
return | byte[] |
public byte[] DeriveKey(string password, byte[] salt)
{
var passwordInBytes = PbeParametersGenerator.Pkcs5PasswordToBytes(password.ToCharArray());
var keyGenerator = new Pkcs5S2ParametersGenerator();
keyGenerator.Init(passwordInBytes, salt, _iterations);
var keyParameter = (KeyParameter) keyGenerator.GenerateDerivedMacParameters(_keyBitSize);
var keyBytes = keyParameter.GetKey();
return keyBytes;
}
public void DifferingSaltsProduceDifferingKeys() { var keyDerivationFunction = new Pkcs5S2KeyGenerator(); var key1 = keyDerivationFunction.DeriveKey("", new byte[0]); var key2 = keyDerivationFunction.DeriveKey("", new byte[] {1}); Assert.That(key1, Is.Not.EquivalentTo(key2)); }