Общаться на тайном языке с доверенными так весело, правда? Позвольте мне показать вам кое-что интересное. Это может стать отправной точкой в вашем путешествии по криптографии.
Магия:
Вывод по теме 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 самостоятельно. Надеюсь, это интересно. Больше этого впереди, так что следите за обновлениями!