2025-04-12 17:21:53 +03:00

69 lines
4.8 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{% extends 'utils/_task.html' %}
{% block content %}
{% include 'utils/_forensicsidenav.html' %}
<div id="popup" class="sql-guide capsule-window">
<p class="simpletext" style="text-align: left"><a href="https://habr.com/ru/articles/190054/" class="hltext">Кодировки Base64 и Base32</a> - метод представления бинарных данных в виде текста, однако часто используется во всяких загадках, ARG и CTF как "шифр"</p>
<p class="simpletext" style="text-align: left">Как кодировать или декодировать Base64 и Base32? Обычно для этого используют онлайн утилиты, одна из самых удобных - <a href="https://gchq.github.io/CyberChef/" class="hltext">CyberChef</a>. Также полезно знать способ с Python, для этого есть отдельная библиотека:<span class="context" style="font-size: 0.9rem">(пример кода ниже)</span></p>
<pre><code class="codefont python">import base64
data = "[данные]"
#Для Base64:
encoded_data64 = base64.b64encode(data)
decoded_data64 = base64.b64decode(encoded_data64)
#Для Base32:
encoded_data32 = base64.b32encode(data)
decoded_data32 = base64.b32decode(encoded_data32)
</code></pre>
<p class="simpletext" style="text-align: left">Также есть базовые утилиты для командной строки:<span class="context" style="font-size: 0.9rem">(пример команд ниже)</span></p>
<pre><code class="codefont bash">base64 [файл] > [закодированный файл] #Для кодировки файлов
echo -n "Ваш текст" | base64 #Для кодировки текста
base64 -d [Закодированный файл] > [Декодированный документ] #Для декодировки файлов
echo -d "Закодированный текст" | base64 #Для декодировки текста
</code></pre>
<p class="simpletext" style="text-align: left">Как различать Base64 и Base32? Они используют разный набор символов для представления данных:<span class="context" style="font-size: 0.9rem">(пример ниже)</span></p>
<pre><code class="codefont bash">
#Алфавит Base64 (чувствителен к регистру):
ABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefghijklmnopqrstuvwxyz
0123456789 + /
#Алфавит Base32 (нечувствителен к регистру):
ABCDEFGHIJKLMNOPQRSTUVWXYZ
234567
</code></pre>
<p class="simpletext" style="text-align: left">Различать их стоит по наличию символов <span class="mono">0, 1, I, L, O</span> - у Base32 их нет. Символ <span class="mono">=</span> используется как заполнитель, для необходимой длины строки, не стоит пытаться распознать по ним кодировку.</p>
<span class="close-btn usable-context" onclick="hidePopup()">скрыть</span>
</div>
<div class="container">
<div class="small capsule-window info1" style="height: auto">
<p class="simpletext">На просторах небезызвестной ветки /b форума Двач я нашёл это.. Оно определённо точно напоминает мне <abbr class="hltext" title="Смотри подсказку(кнопка снизу слева)">какую-то кодировку</abbr>.. или их там сразу две? Поможешь разгадать эту загадку?</p>
<pre><code style="width: 35rem" class="codefont bash">{{ base_task }}</code></pre>
</div>
<div class="flag-input">
<h3 class="header" style="text-align:left">Введите ответ:</h3>
<form action="/forensic/base-guide" method="post" class="simpletext">
<input class="inpt" type="text" name="user_flag" style="width: 100%; height: 1.25rem; margin: 0">
<input type="submit" value="Submit" class="btn1" style="margin-top: 1.25rem">
</form>
</div>
</div>
{% if error %}
<div id="error"> <p>{{ error }}</p> </div>
{% elif success_flag %}
<div class="task-done">
<h1 class="header">Вы прошли задание!</h1>
<img class="done" src="{{ url_for('static', filename='imgs/done_icon.png') }}">
<a href="{{ url_for('forensic') }}" class="usable-context" style="text-align: canter; margin: 1rem; padding: 1rem;"> < Вернуться к заданиям > </a>
</div>
{% endif %}
{% endblock %}