Я только знакомлюсь с шифрованием и .NET Framework.После просмотра многих примеров я вижу повторяющийся шаблон, который сбивает с толку при использовании .NET Class Rfc2898DeriveBytes
.При использовании этого класса для получения ключа шифрования и вектора инициализации, похоже, используется тот же метод.
Вот код из блога MSDN , который демонстрирует получение ключа и вектора инициализации.
byte[] salt = new byte[] { 0, 1, 2, 3, 4, 5, 6, 7 };
Rfc2898DeriveBytes pwdGen = new Rfc2898DeriveBytes("P@$$w0rd", salt, 1000);
// generate an RC2 key
byte[] key = pwdGen.GetBytes(16);
byte[] iv = pwdGen.GetBytes(8);
Я видел это в других местах.Думаю, я бы подумал, что это будет что-то вроде этого ...
// generate an RC2 key
byte[] key = pwdGen.GetKey();
byte[] iv = pwdGen.GetInitializationVector();
Я ДОЛЖЕН что-то здесь упустить.Если Ключ и Вектор Инициализации (IV) являются просто случайными числами, как они получаются снова при использовании правильного пароля и соли?