Как зашифровать и расшифровать строку по ключу максимально быстро в C#?

Есть строка

string text = "Строка для зашифровки";


public string encrypt(string whatToencrypt , string key){}
public string decrypt(string whatToDecrypt , string key){}

С помощью каких библиотек C# максимально быстро получится зашифровать и расшифровать затем эту строку? Главное скорость, а не качество шифрования.


Ответы (2 шт):

Автор решения: Виктор

Реализация с XOR:

string text = "Строка для зашифровки";


public string encryptDecrypt(string whatToencrypt , string key)
{
       List<byte> resStr = new List<byte>();
       int i = 0;
       foreach (var c in whatToencrypt)
       {
           resStr.Add( (byte)(c ^ key[i++]) );
           i = i % key.Length;
       }
       whatToencrypt = System.Text.Encoding.Default.GetString(resStr.ToArray());
       return whatToencrypt;
}
→ Ссылка
Автор решения: Max S

Если стойкость шифрования вообще неважна (от слова совсем) – то просто замените каждый символ да хоть через шифр Цезаря. Ещё быстрее – делать просто операцию XOR (исключающее или) с какой-нибудь константой.

Только учтите, что строки в C# - неизменяемый объект. Эффективнее будет создать массив char[whatToencrypt.Length], в него записать зашифрованные символы и уже его собрать в строку с помощью new string(array).

→ Ссылка