Общаться на тайном языке с доверенными так весело, правда? Позвольте мне показать вам кое-что интересное. Это может стать отправной точкой в ​​вашем путешествии по криптографии.

Магия:

Вывод по теме 2: перегрузка функций невозможна в python. https://www.geeksforgeeks.org/python-method-overloading/

Как ты это сделал?

Эти кодировки являются хлебом, маслом и джемом для информационной безопасности. Давайте углубимся в каждый, по одному.

Шестнадцатеричный код:

Шестнадцатеричный код — это простейшая форма кодирования. Шестнадцатеричное кодирование работает с 16 (=2⁴) символами от 0 до 9 и от a до f.

0x 0 = 0b 0000 (0x = шестнадцатеричный, 0b = двоичный)
0x 1 = 0b 0001
0x 2 = 0b 0010

0x 9 = 0b 1001
0x a = 0b 1010

0x f = 0b 1000
0x 10 = 0b 0001 0000

Чтобы декодировать шестнадцатеричный код в текст ASCII:

  • Преобразуйте каждый шестнадцатеричный символ в соответствующую ему 4-битную двоичную форму.
  • Рассмотрим группы из 8 битов, начиная со старшего бита (крайнего левого бита), и преобразуйте их в соответствующее значение ASCII.
  • В качестве промежуточного шага вы можете преобразовать группу из 8 битов в десятичную, а затем сопоставить ее с ее символом ASCII.

Давайте выполним некоторое необработанное декодирование в соответствии с приведенным выше алгоритмом:
Поскольку один шестнадцатеричный символ декодируется в 4-битный двоичный код, а на последующем шаге 8-битный двоичный код (4 x 2 = 8) рассматривается как группа. , этот алгоритм декодирует шестнадцатеричный код в ASCII, рассматривая два шестнадцатеричных символа на каждой итерации.

Python упрощает жизнь:

База64:

64! Разве это число не звучит знакомо? Верно, это также совершенная степень числа 2 (2⁶ = 64).
С другой стороны, обратите внимание, что 0–9 считается за 10, AZ — за 26, а az — за 26. Итого получается 62. .
Слишком близко! Чтобы увеличить число до 64, в стандарте base 64 используются + и /.

Почему из всех символов на клавиатуре только + и /?
+ и / — это два символа, на которые не влияет кодировка URL.
Короче говоря, бинарные файлы кодируются в формате base64 перед сетевым подключением через браузер. Таким образом, хост может отправлять 64 бита (фактический двоичный код) в 8 битах (символ base64).

Чтобы декодировать текст в кодировке base64 в двоичный файл:

  • Загрузите таблицу base64.
  • Обратный поиск каждого символа и преобразование десятичного числа в соответствующий 6-битный двоичный код.
  • Замените завершающий «=» ровно двумя нулями (они называются заполняющими символами).
  • Убедитесь, что общее количество битов делится на 8.

Кроме того, преобразуйте 8-битную группу в соответствующий символ ASCII, чтобы просмотреть сообщение.

Попробуйте написать код функции gimme_plain_text_from_base64 самостоятельно. Надеюсь, это интересно. Больше этого впереди, так что следите за обновлениями!