У меня есть функция GetPassword
, которая возвращает тип SecureString
.
Когда я передаю эту безопасную строку в Rfc2898DeriveBytes
для создания ключа, Visual Studio показывает ошибку. Мои ограниченные знания говорят мне, что это потому, что Rfc2898DeriveBytes
принимает только строку, а не защищенную строку. Есть ли обходной путь для этого?
//read the password from terminal
Console.Write("Insert password");
securePwd = myCryptography.GetPassword();
//dont know why the salt is initialized like this
byte[] salt = new byte[] { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0xF1, 0xF0, 0xEE, 0x21, 0x22, 0x45 };
try
{ //PBKDF2 standard
Rfc2898DeriveBytes key = new Rfc2898DeriveBytes(securePwd, salt, iterationsPwd);