Кодировка, используемая для преобразования массива байтов в строку и наоборот

Я использую этот код для шифрования строки (в основном, это пример, приведенный на класс 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 или что-то еще?

Может ли это иметь негативные последствия для сохраненных значений, когда я пытаюсь зашифровать и расшифровать их, если файлы перемещены в другую ОС '?

14
задан John Bubriski 14 February 2012 в 15:12
поделиться