Шифрование бинарные операции + Base64String с использованием ключа - C#
Формулировка задачи:
Немного поэкспериментировал с шифрованием, в итоге собрал такой класс:
Можно шифровать/расшифровывать просто через NewText или через TextEncription/TextDecryption
class Encryption
{
// Переменная ключа со значением по умолчанию
public string Key { get; set; } = "def_pass";
public string Text { get; set; }
public string NewText => new string(Text
.Select((c, i) => (char)(~c ^ Key[i % (Key.Length - 1)]))
.ToArray());
public string TextEncription => new string(Convert.ToBase64String
(Encoding.UTF8.GetBytes(NewText)).Reverse().ToArray());
public string TextDecryption => new string(
Encoding.UTF8.GetString((Convert.FromBase64String
(new string(Text.Reverse().ToArray()))))
.Select((c, i) => (char)(~c ^ Key[i % (Key.Length - 1)]))
.ToArray());
}Хотелось бы увидеть мнение.
class KeyMaker
{
public string KeyVal1 { get; } = "absdefghigklmnopqrstuvwxyz";
public string KeyVal2 { get; } = ".:;^%&*()";
string KeyVal3 => KeyVal1.ToUpper();
int KeyLength { get; } = 5;
Random rnd = new Random();
public string KeyGen => new string($"{KeyVal1}{KeyVal2}{KeyVal3}"
.OrderBy(k => rnd.Next()).Take(KeyLength).ToArray());
}Решение задачи: «Шифрование бинарные операции + Base64String с использованием ключа»
textual
Листинг программы
public string TextEncription(string text) => new string(Convert.ToBase64String (Encoding.UTF8.GetBytes(new string(text ?.Select((c, i) => (char)(~c ^ Key[i % (Key.Length - 1)])) .ToArray()))).Reverse().ToArray());