{% 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 %}