Когда-нибудь и я вернусь.
-
Автор темы
- #1
Приветствую всех, кто решил зайти сюда и узнать что-то новое.
Недавно я придумал способ шифрования текста, сразу побежал его реализовывать.
Принцип действия программы прост:
Байт каждого знака(буквы, пробела) умножается на случайную формулу(которую можно написать самому), например, 5/2*100, что будет умножением на 250, но такая формула довольна проста, и гораздо безопаснее будут более комплексные формулы, где, например, результат умножения будет делиться или умножаться на ещё одну формулу.
Как я это реализовал:
Недавно я придумал способ шифрования текста, сразу побежал его реализовывать.
Принцип действия программы прост:
Байт каждого знака(буквы, пробела) умножается на случайную формулу(которую можно написать самому), например, 5/2*100, что будет умножением на 250, но такая формула довольна проста, и гораздо безопаснее будут более комплексные формулы, где, например, результат умножения будет делиться или умножаться на ещё одну формулу.
Как я это реализовал:
C#:
using System;
int[] Crypt(string text) // На вход получаем текст
{
string input = text; // Текст, который мы хотим зашифровать, можно убрать и использовать аргумент напрямую
char[] chars = input.ToCharArray(); // Переводим строку в последовательность знаков
byte[] bytes = new byte[chars.Length]; // Создаём массив байтов с размером последовательности знаков(опционально, можно убрать)
int[] crypteds = new int[chars.Length]; // Создаём массив зашифрованных байтов с размером последовательности знаков
for (int i = 0; i < chars.Length; i++) // В этом цикле будет шифроваться каждый знак(не выгодно при шифровании больших текстов
{
crypteds[i] = Convert.ToByte(chars[i]) * (5 / 2 * 100); // Шифруем знак с помощью умножения байта знака на формулу, результат шифрования помещаем в массив(в формуле умножается на 100 потому, что иначе байт будет десятичной дробью, а не целым числом)
bytes[i] = Convert.ToByte(chars[i]); // Помещаем байт знака в массив
Console.WriteLine("" + chars[i] + " : " + bytes[i] + " : " + crypteds[i]); // Выводим знак, его байт и зашифрованный знак
}
return crypteds; // Возвращаем массив зашифрованных знаков
}
Разумеется, у данного метода шифрования есть недостатки, например, возможность подбора формулы, хотя если её усложнить, то всё становится безопаснее в разы.
Способ расшифровки придумайте сами(подсказка: это связано с математикой), те, у кого не получается, пишите в лс, помогу.
Спасибо за внимание!
Способ расшифровки придумайте сами(подсказка: это связано с математикой), те, у кого не получается, пишите в лс, помогу.
Спасибо за внимание!