Шифрование пароля при сохранении в 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();
}
}
}