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

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

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

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

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

textual
Листинг программы
class PasswordHelper
{
    private static RijndaelManaged CreateUsingRandom(int seed = -48718031)
    {
        Random rnd = new Random(seed);
        var rijndael = new RijndaelManaged();
        rijndael.BlockSize = 256;
        rijndael.KeySize = 256;
        
        byte[] key = new byte[rijndael.KeySize/8];
        rnd.NextBytes(key);
        rijndael.Key = key;
        
        byte[] iv = new byte[rijndael.BlockSize/8];
        rnd.NextBytes(iv);
        rijndael.IV = iv;
        
        return rijndael;
    }
    
    public static string Encrypt(string password)
    {
        var mstream = new MemoryStream();
        using (var rijndael = CreateUsingRandom())
        using (var cryptoStream = new CryptoStream(mstream, rijndael.CreateEncryptor(), CryptoStreamMode.Write))
        using (var writer = new StreamWriter(cryptoStream))
        {
            writer.Write(password);
        }
        return Convert.ToBase64String(mstream.ToArray());
    }
 
    public static string Decrypt(string base64text)
    {
        var mstream = new MemoryStream(Convert.FromBase64String(base64text));
        using (var rijndael = CreateUsingRandom())
        using (var cryptoStream = new CryptoStream(mstream, rijndael.CreateDecryptor(), CryptoStreamMode.Read))
        using (var reader = new StreamReader(cryptoStream))
        {
            return reader.ReadToEnd();
        }
    }
}

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


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

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

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