System.Security.Cryptography.CryptographicException: параметр неверен. - ProtectedData.Unprotect () - PullRequest
0 голосов
/ 12 апреля 2020

Я пытаюсь написать простое C# консольное приложение, которое сохранит мои chrome пароли. Я знаю, что мои данные для входа хранятся в C:\Users\USER\Appdata\Local\Google\Chrome\User Data\Default\Login Data, и пароли зашифрованы, но могут быть расшифрованы, если текущий пользователь запускает программу.

Когда я пытаюсь расшифровать пароли с помощью Unprotect () метод, я получаю следующую ошибку:

System.Security.Cryptography.CryptographicException: The parameter is incorrect

Вот мой код:

 public void decrypt()
    {

        //Create a temp file to read from so database isn't locked
        string source = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData) + @"\Google\Chrome\User Data\Default\Login Data";
        string target = @"tmp\backup";
        File.Copy(source, target);


        SQLiteConnection sqlite = new SQLiteConnection(@"Data Source="+ target);
        try
        {
            sqlite.Open(); 
            SQLiteCommand cmd = sqlite.CreateCommand();
            cmd.CommandText = "SELECT action_url, username_value, password_value FROM logins"; 
            SQLiteDataReader reader = cmd.ExecuteReader();
            while (reader.Read())
            {

                //Decrypt password. Problem arises here
               var plainText = Encoding.UTF8.GetString(ProtectedData.Unprotect((byte[])reader["password_value"], null, DataProtectionScope.CurrentUser));
            }


            reader.Close();
            sqlite.Close();

        }
        catch (Exception ex)
        {
            Console.WriteLine(ex);
        }
    }

База данных, кажется, действительна, потому что я могу получить имя пользователя, имена хостов..et c, но я просто не могу расшифровать свои пароли в обычный текст. Я вошел как текущий пользователь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...