Как сделать свой скрипт для шифрования (+ задачка)

Поделиться
HTML-код
  • Опубликовано: 5 янв 2025

Комментарии • 34

  • @S0ERDEVS
    @S0ERDEVS  2 года назад +5

    Сообщение, которое нужно расшифровать:
    ПъълIMыaEcm5аямBVqqNдьoа(9djЪеyoinmv)высCщ7ЫяkmpаFхaLтs7aтЧB)шфвУяkЫяzЩfпGлNУqАцльjЩq

    • @НиколайБелов-г1в
      @НиколайБелов-г1в 5 месяцев назад

      Хорошый урок для начинающих, спасибо.вдохновился и решил попробовать сделать свой шифратор, делал в первый раз и конечно с помощью ИИ. Работал на гугл аппс скрипт без библиотек, но gpt мне постоянно предлогал ими пользоваться.
      Так к чему я, вот мой шифр, в нем обычный текст, не чего заумного. Если вы реально крутые и декодируете, то я оформлю ваши все занятия. Ваш шифр не получается взломать.
      DXhek76Лч3жйЬкЬЫувж7 76КлйЬЫеенш6жЬ 6ъьщ.

  • @HIh8ahsdkj2h8ug7F
    @HIh8ahsdkj2h8ug7F 2 года назад +5

    Классно, побольше бы такого интерактива ) если кто не хочет сидеть с ручкой и листочком, можно просто от 0 до 128 сделать перебор seed и получить все seed`ы

  • @kawaikaino5277
    @kawaikaino5277 Год назад +1

    В идеале) потом можно еще посолить полученный шифр, из рандомной последовательности символов, а в конце шифрованной строки, зашифровать еще методику посола)

  • @mrkokoshaur1179
    @mrkokoshaur1179 2 года назад +14

    Кто не смог дешифровать - верная последовательность линейного конгруэнтного датчика начинает зацикливаться всего лишь на 12 числах (136 121 6 11 96 1 66 51 76 81 26 71), ключевыми сидами которых будут числа 15, 43, 71 и тд. Учитывая, что модуль у нас значительно больше 16, результат откровенно плохой, его в принципе на листочке можно было расшифровать.
    По хорошему повторения должны начаться почти у самого модуля, то есть если m = 128, то примерно 120 первых чисел должны быть уникальными. Ну и последовательность конечно же не должна повторяться, это вообще ужас. Так случилось из за плохих магических констант. Если честно, понятия не имею, откуда эти 45 и 21. Никогда не встречал. Почему бы не взять наши православные a = 19381, c = любое нечётное и не простое > 9 из приписки к госту 34.10-2018 (или Кузнечику, не помню)? Просто в таком виде, когда у нас длина ключа равна длине сообщения всякие там конгуэнтные датчики вообще не нужны. Можно просто заксорить исходное сообщение и ключ и всё. Это будет полностью неломаемый криптостойкий шифр. Просто одной операцией ^ двух массивов))
    Ну и не хочу конечно показаться совсем душным скуфидоном, но это вроде как не скремблирование) В скремблировании выходной поток должен быть равномерный (50% нулей, 50% единичек), ну и скремблирование вроде как только аппаратное бывает, и в основном в аудиосокрытии имеет смысл, если не изменяет память

    • @ShaksUa
      @ShaksUa 2 года назад +7

      переведите кто-то, тут на милордском

    • @teimiryt7661
      @teimiryt7661 Год назад

      @@ShaksUa Про скреблирование объяснить не могу, но тут говорят, что не это.
      А вообще это просто шифрование заменой символа на ксор этого символа и ключа из сгенерированного массива, а так как ключи повторяются, то получается, что много символов заксорены одним и тем же числом. Зная паттерн изменения числа можно просто перебором найти такие входные данные, чтобы выходное сообщение получилось читаемым. Чем больше сообщение,тем больше повторов, а далее уже аналитически можно будет попробовать дешифровать. Стоило бы взять другие константы "Почему бы не взять наши православные a = 19381, c = любое нечётное и не простое > 9 из приписки к госту 34.10-2018 (или Кузнечику, не помню)"

  • @gagikpog
    @gagikpog 2 года назад +1

    функция char2num не бросит исключение если передать в него "123", и не только "123", любую последовательность из charset. Нужно проверять длину строки перед поиском.

  • @Amigun_yo
    @Amigun_yo 2 года назад +2

    Можешь посоветовать литературу по криптографии?

  • @deverloperfantom1372
    @deverloperfantom1372 Год назад

    what name the the program where create code?

  • @ohtori7339
    @ohtori7339 2 года назад +5

    Было бы интересно видео о дешифровке этого сообщения, самому искать решение мне конечно же лень 😇

    • @Aleksei12595
      @Aleksei12595 2 года назад +1

      Ну по сути повторяешь код, вбрасываешь эту фразу и на месте шифрованного сообщения теперь исходная фраза. Хочу видео про взлом. Спасибо

    • @alko4188
      @alko4188 2 года назад

      @@Aleksei12595 Взлом возможен только через атаку на генератор ключа. ибо "одноразовый блокнот" обладает абсолютной криптостойкостью.

    • @maximevtahov2360
      @maximevtahov2360 2 года назад

      не тормози, брутфорсни

    • @mantrida
      @mantrida 2 года назад +2

      Ну тут дешифровка громко сказано, так как чарсет известен и магические константы известны. Остаётся подобрать базу. Что элементарно. Перебираешь числа по порядку в цикле, подставляешь в функцию и печатаешь результат. Ищешь осмысленное сообщение )

  • @gocball9584
    @gocball9584 2 года назад +1

    15:50 я так и не понял чему равена переменная index

    • @alexandr-v
      @alexandr-v 2 года назад

      Гугли метод map(), где второй параметр index это порядковый номер массива.

  • @DenisB-d5f
    @DenisB-d5f Год назад

    В char2num правильно будет еще сделать split: charset.split('').indexOf(char)
    Иначе число 12 или набор символов qwerty будут успешно искаться

  • @КириллДенисов-к9ж
    @КириллДенисов-к9ж Год назад +2

    XOR шифрование? Серьезно?
    😂
    Попробуй через свой скрамбл прогнать зашифрованное сообщение как message и расшифрованное в качестве keyArray и получишь свой ключ шифрования.
    Ну для фана - норм ))), реального применения этого алгоритма нет.
    Есть старая задача. Открытый канал передачи данных между А и Б, А должен передать сеансовый ключ Б, по которому они потом шифруют все данные. Так вот А отправляет сообщение с замком, Б вешает свой замок и отправляет А, А снимает свой замок и отправляет Б, Б снимает свой замок и вуаля получает сообщение. Оно сработает с xor (ом), только на 2-ой передаче у меня уже будет ключ Б, а на 4 ой все ключи и расшифрованные сообщения.

  • @slash7076
    @slash7076 2 года назад +1

    👍

  • @MechanicalCoreSystems
    @MechanicalCoreSystems 2 года назад +1

    сам код читать, что массу иероглифов из матрицы)

  • @DenisB-d5f
    @DenisB-d5f Год назад +1

    А зачем во время кодинга себя показывать и при этом рассказывать что происходит в коде?
    Это как шахматы в уме или что?

  • @maximevtahov2360
    @maximevtahov2360 2 года назад +4

    31. Тот случай, когда Соер тебя в телеге забанил

    • @maximevtahov2360
      @maximevtahov2360 2 года назад +1

      Алсо, после этого он ещё говорит, что софт-скиллы не так уж и важны. Не так пошутил -- всё, досвидонья, хрена тебе лысого, а не доступ к видосикам по архитектуре. Пресловутый отрицательный отбор по-принципу лояльности. Качайте софт-скиллы, пацаны, вы матерям ещё нужны, так сказать

    • @johnstrayk5208
      @johnstrayk5208 2 года назад

      Он любит поныть о своей исключительности, а если кто-то с этим не согласен он очень обижается)

    • @maximevtahov2360
      @maximevtahov2360 2 года назад

      @@johnstrayk5208 ну, как и все мы, в принципе

    • @johnstrayk5208
      @johnstrayk5208 2 года назад

      @@maximevtahov2360 уточните для полноты картины, мы это кто.

    • @garou.2894
      @garou.2894 2 года назад

      Ща бы взрослому дядьке обижаться))
      Как говорится, 40 лет - ума нет 🤡 🤡 🤡
      Отписка, дизлайк - минус спонсор)))

  • @georgigalechyan4392
    @georgigalechyan4392 2 года назад

    Кто-нибудь взломал??? У меня пока не получается🙃, время час ночи, я спать💤.

  • @garou.2894
    @garou.2894 2 года назад

    Клоун 🤡

  • @babenoff
    @babenoff 2 года назад

    @S0ER неплохо, если бы вы проверяли код не с помощью console.log, а писали бы unit тесты, тем самым показывая хороший пример всем)))

    • @icyfeather8651
      @icyfeather8651 2 года назад

      Если писать юнит-тесты каждый раз, когда нужно что-то отладить, можно к концу файла с кодом уже состариться

    • @babenoff
      @babenoff 2 года назад

      А зачем тогда жить, если не покрывать свой код тестами? 😄