Я использую этот код для шифрования строки (в основном, это пример, данный для класса Rijndael на MSDN ):
public static String AESEncrypt(String str2Encrypt, Byte[] encryptionKey, Byte[] IV)
{
Byte[] encryptedText;
using (RijndaelManaged rijAlg = new RijndaelManaged())
{
// Use the provided key and IV
rijAlg.Key = encryptionKey;
rijAlg.IV = IV;
// Create a decrytor to perform the stream transform
ICryptoTransform encryptor = rijAlg.CreateEncryptor(rijAlg.Key, rijAlg.IV);
// Create the streams used for encryption
using (MemoryStream msEncrypt = new MemoryStream())
using (CryptoStream csEncrypt = new CryptoStream(msEncrypt, encryptor, CryptoStreamMode.Write))
{
using (StreamWriter swEncrypt = new StreamWriter(csEncrypt))
{
// Write all data to the stream
swEncrypt.Write(str2Encrypt);
}
encryptedText = msEncrypt.ToArray();
}
}
return Encoding.Default.GetString(encryptedText);
}
Я использую Encoding.Default
для преобразованиямассив байтов в строку, но я не уверен, что это хорошее решение.Моя цель - хранить зашифрованный текст (например, пароли ...) в файлах.Должен ли я продолжать с Encoding.Default
или использовать Encoding.UTF8Encoding
или что-то еще?
Может ли это иметь негативные последствия для сохраненных значений, когда я пытаюсь их зашифровать и расшифровать, если файлы перемещаются в другую ОС '?