Как шифровать свои данные и почему это важно делать?
Современные навыки хакеров превосходят все и вся. Вирусы в картинках, взломы баз данных пользователей, прозвоны, фишинг, ботнеты, программы - вымогатели и многое другое.
Наша цель заключается в том, чтобы достичь безопасного хранения данных на вашем компьютере или телефоне. Наверняка вы слышали, что пароли не стоит хранить в телефоне или в компьютере, так как в том случае, если злоумышленники получат доступ к вашим устройствам, то они спокойно смогут войти в ваше соц. сети, а если у вас еще и ко всем аккаунтам на разных платформах одинаковые пароли, то тут даже без комментариев о том, что может быть..
Перейдем к сути.
Существует много способ для безопасного хранения и передачи информации.
Их можно разделить на две категории:
1) криптография
2) стеганография
Каждая из этих категорий имеет подкатегории:
1.1 симметричное шифрование
1.2 асимметричное шифрование
1.3 хеширование (одностороннее шифрование без возможности дешифрования. Эта подкатегория нам не подходит)
1.4 гибридное шифрование
2.1 классическая стеганография
2.2 компьютерная стеганография
2.3 цифровоя стеганография
Данные подкатегории делятся еще на подкатегории, но это уже тема для отдельной статьи.
Сегодня мы будем разбирать раздел криптографии и асимметричное шифрование.
Раскрытие категории:
Криптография - наука изучающая методы шифрования информации и их использование.
Асимметричное шифрование (RSA - Rivest, Shamir, Adleman) - шифрование данных с помощью двух ключей, один из которых - открытый, а другой - закрытый.
Весь процесс шифрования и дешифрования происходит на основе математических формул и чисел. Пугаться не нужно, ничего сложно в этом нет.
Алгоритм:
1) Генерация двух простых чисел p и q.
2) Вычисление значения n, где n = pq.
3) Вычисление функции Эйлера. F = (p-1)(q-1).
4) Генерация экспоненты e, являющийся взаимно простым с F. (Наибольший общий делитель двух чисел равен 1)
5) Вычисление значения d, такое что (d*e) % F = 1. (% - остаток от деления)
Совокупность e и n является открытым ключом, а совокупность d и n – закрытым ключом.
Для шифрования информации необходимо преобразовать символы в числа удобным вам способом. Можно воспользоваться таблицей символов ASCII (смотреть скришот ниже) и использовать числовые значения для букв в столбике "DEC". Более простым способом является создание своих числовых значений для букв(A-1, B-2, C-3 и т. д.)
После преобразование всех символов в числовые значения начинаем их шифровать с помощью алгоритма написанного выше.
*Для удобства, числовое значение каждой буквы можно раделять точкой. *
Для шифрования сообщения:C = m**e%n
Для дешифрования сообщения:m = C**d%n
m - числовое значение символа
Пример:
Возьмём слово "шифр".
Алфавит: ш-12; и-18; ф-23; р-54
p = 3
q = 5
n = 3 * 5 = 15
F = (3-1) * (5-1) = 8
e = 7 (*gcd(7, 8) = 1)
d = 7 ((7*7) % 8 = 1)
*gcd - функция проверки того, что два числа являются взаимно простыми
Процесс шифрования:
Шифруем каждое числовое значение символа:
12 -> 12^7%15 = 3
18 -> 18^7%15 = 12
23 -> 23^7%15 = 2
54 -> 54^7%15 = 9
Зашифрованное сообщение: 3.12.2.9
Процесс дешифрования:
Дешифруем зашифрованные числовые значения букв:
3 -> 3^7%15 = 12
12 -> 12^7%15 = 18
2 -> 2^7%15 = 23
9 -> 9^7%15 = 9
Сопоставляем буквы в соответствии с кодами из алфавита (ш-12; и-18; ф-23; р-54) и получаем слово "шифр"
Важно соблюдать порядок зашифрованных кодов букв, иначе при дешифровке сообщение будет просто набор символов.
@tehnoin
Уже занимаюсь разработкой по внедрению данного алгоритма в телеграмм бота, который будет в абсолютно открытом доступе.
Продолжение «"Программисты не умеют программировать"»
Просто компилирую почти пустые приложения в Delphi 7 (x86), 11.3, а также Lazarus 2.2.4 (x64). Уровень "Hello, World". Я не менял Uses, оно само туда надобавлялось. Не использовал KOL и прочие навороты.
У Lazarus просто отключал генерацию отладочной информации, у Delphi 11.3 переключал профили Debug/Release (Win32), Delphi 7 (x86) - компилил как есть, на свежеустановленной среде.
Оконное приложение:
vcl, TCaption для вывода "Hello, World". Код примерно такой (Delphi 11.3):
Delphi 11.3
У Lazarus другой список uses:
uses Classes, SysUtils, Forms, Controls, Graphics, Dialogs, StdCtrls;
У Delphi 7 этот список такой:
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;
Консольное приложение:
Lazarus
Delphi 11.3
Delphi 7 - как у Lazarus + uses SysUtils.
Навороченное консольное приложение Lazarus 2.2.4. Это стандартная заготовка, я добавил только строчку № 47.
По итогу накомпилировал столько приложений:
В виде таблички:
Для Delphi 7 (x86) -- вроде и Debug-версия, но там Debug-файлы генерируются отдельно, т.е. вроде и не Debug.
Решил отдельно замерять по трем компиляторам, даже Delphi 7 откопал, развитие моего комментария: #comment_306393162
Отдельно запустил C# (.NET Framework) с использованием Windows Form и получился такой код:
Все эти Form1 и label1.Text мне что-то смутно напоминают.
Андерс Хейлсберг приложил свою руку и к Delphi, и к C#. При этом C# вдохновлялась Java, а Java вдохновлялась виртуальными машинами:
в 1973 году с участием Вирта был разработан прототип виртуальной машины, исполняющей на любой платформе промежуточный «пи-код», в который предполагалось компилировать все программы
А Никлаус Вирт создал Паскаль, который лег в основу Delphi.
Format C:
Всем привет, Пикабу!
Наверное, это будет самый сложный пост в моей жизни, так как я никогда ранее не вел блог или что-то подобное. Я хочу начать серию постов, которая будет содержать реальные проекты по программированию на фрилансе.
Зачем это? Просто хочется делиться любым опытом с сообществом. Возможно кому-то даже удастся помочь или просто обсудить проект.
Сразу скажу, я не профессиональный программист. Все, что я знаю - черпал в разное время из книг и Youtube. Да, когда-то начинал по книге изучать Delphi, а с помощью форумов и HTML писал для себя простенькие сайты. Прошло довольно много времени, изучение было успешно отложено. Около года назад снова заинтересовало написание кода, выбор пал на распиаренный Python. В общем сейчас владею небольшим багажом знаний по Python, HTML верстке с CSS, JavaScript и немного C# (На C# имеется опыт в написании плагинов для игры Rust).
В данный момент есть огромное желание практиковаться, сталкиваться с трудностями и искать решения. Именно поэтому подался на фриланс. Конечно, я не буду рекламировать площадки при публикации проектов.
Ну и чтобы завершить данный поток написанных слов, расскажу о своем первом опыте на фрилансе. Как и ожидалось мной, опыт был негативным в силу моего доверия к людям. Мне удалось взять задание по редактированию шаблона сайта на Joomla. Ранее я уже сталкивался с этой CMS и базовые принципы работы имелись. Как это обычно бывает, заказчику потребовалось больше, чем было указано в описании задания. Я согласился, так как хотелось получить опыт в реальном заказе. Сейчас я не буду описывать в чем конкретно заключалась задача и ее многочисленные подзадачи в виде "мелких" правок и какова была реализация. Скажу только итог - я выполнил всю работу и не получил за свою работу ни копейки. Да, таков был первый опыт.
Я очень надеюсь, что найдутся те, кому это будет интересно. Надеюсь, что найдутся и те, кто будет тоже делиться своими знаниями. В общем, Пикабу, не кидай камни)
Не знаю, как вы, а я пойду в IT
Начнем изучение с Азов
Вопрос windows 10 pro или windows 8, что быстрее
друзья дайте совет я просто не знаю как быть и что делать
мне, на днях установили windows 10 pro и комп стал медленнее работать и теперь я не знаю что делать
у меня вопрос, Если я попрошу переустановить с windows 10 pro на windows 8, будет ли быстрее ?
я просто хочу 8я даёт меньше нагрузку на комп или нет
если что Процессор Райзен третий 2200, оперативки 8гигабайт.
Картинка глючит в OBS Studio
Недавно, а именно 7 апреля у меня в (ПК) появился вирус и всё сломалось и мне пришлось обратиться к специалисту (он один в нашем селе к кому я обращаюсь и он единственный кто меня знает ну что я инвалид и управляю компьютером только ногой)
у меня до поломки стояла windows 10 для образовательных учреждений и он мне сменил на windows 10 pro и всё, привозят мне обратно системный блок и вроде всё хорошо работает, но я заметил что комп стал медленнее работать чем раньше я не в чём причины может железо не тянет PRO версию но мне сказали что нет железо нормальное должно вытягивать, я думаю ну ладно медленный, но рабочий...
потом я обнаружил ещё одну проблему, дело в том я что пытаюсь стримить на YouTube (маленькое хобби) а для этого нужна программ OBS Studio
проблем заключалась в том, что Когда я запускал OBS в полноэкранный режим то, всё начинало глючит картинка рывками показывало, но как только я переключал на оконный режим работы все глюки исчезали
мне, не комфортно заниматься своим хобби в оконном режиме (зрения не очень) и стал искать способ решения проблемы, потом я вспомнил что у меня ведь теперь другой монитор (просто родные подарили мне недавно монитор 27 дюймов на 30 юбилей) и я понял что обычный драйвер не подходит для моего ПК с таким монитором
и вчера я сделал авто обновления и нужный драйвер сам нашёлся а именно
да я всю неделю потратил на поиски этого Драйвера, а надо было просто сбросить windows до заводских настроек и дать системе самой найти драйвер и это сработало
теперь, я буду долго настраивать всё под свои удобства
Хорошо разбираетесь в звездах и юморе?
Тогда этот вызов для вас! Мы зашифровали звездных капитанов команд нового юмористического шоу, ваша задача — угадать, кто возглавил каждую из них.
Переходите по ссылке и проверьте свою юмористическую интуицию!