Шифрование пароля при сохранении в 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();
- }
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д