Шифрование пароля при сохранении в xml файле - C#

Узнай цену своей работы

Формулировка задачи:

в моей программе можно ввести в текстовые поля login,password,domain. сохраняется всё в отдельном фале xml формата. Далее данная запись отображаеться в listview. хочу чтобы в файле пароль сохранялся в зашифрованном виде. не обезательно делать супер сложный шифр, но чтобы так просто он не лежал в открытом виде. При запуске программы в listview отображались все 3 колонки login,pass,domain уже в расшифрованом виде. Кто знает как реализовать данный замысел ?

Решение задачи: «Шифрование пароля при сохранении в xml файле»

textual
Листинг программы
  1. class PasswordHelper
  2. {
  3.     private static RijndaelManaged CreateUsingRandom(int seed = -48718031)
  4.     {
  5.         Random rnd = new Random(seed);
  6.         var rijndael = new RijndaelManaged();
  7.         rijndael.BlockSize = 256;
  8.         rijndael.KeySize = 256;
  9.        
  10.         byte[] key = new byte[rijndael.KeySize/8];
  11.         rnd.NextBytes(key);
  12.         rijndael.Key = key;
  13.        
  14.         byte[] iv = new byte[rijndael.BlockSize/8];
  15.         rnd.NextBytes(iv);
  16.         rijndael.IV = iv;
  17.        
  18.         return rijndael;
  19.     }
  20.    
  21.     public static string Encrypt(string password)
  22.     {
  23.         var mstream = new MemoryStream();
  24.         using (var rijndael = CreateUsingRandom())
  25.         using (var cryptoStream = new CryptoStream(mstream, rijndael.CreateEncryptor(), CryptoStreamMode.Write))
  26.         using (var writer = new StreamWriter(cryptoStream))
  27.         {
  28.             writer.Write(password);
  29.         }
  30.         return Convert.ToBase64String(mstream.ToArray());
  31.     }
  32.  
  33.     public static string Decrypt(string base64text)
  34.     {
  35.         var mstream = new MemoryStream(Convert.FromBase64String(base64text));
  36.         using (var rijndael = CreateUsingRandom())
  37.         using (var cryptoStream = new CryptoStream(mstream, rijndael.CreateDecryptor(), CryptoStreamMode.Read))
  38.         using (var reader = new StreamReader(cryptoStream))
  39.         {
  40.             return reader.ReadToEnd();
  41.         }
  42.     }
  43. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 4.222 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут