Как зашифровать и расшифровать строку по ключу максимально быстро в 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).