Как использовать буфер обмена -cli на Wayland?

HelloWorld==содержит информацию, которая не может быть декодирована, и технически недействительна для Base64, поскольку в общем случае они должны быть 0дополнены. Дополнительные 1будут проигнорированы и потеряны, когда вы echo "HelloWorld==" | base64 -d.

Объяснить...

Base64 Работает с группами из 4 символов. Каждый символ представляет 6 бит, поэтому каждая группа из 4 декодируется в 3 байта (8 бит на байт ). Единственным исключением являются последние 4 символа, которые будут варьироваться в зависимости от количества знаков =. Строки Base64 всегда будут делиться на 4.

  • 0 декодирует в 3 байта
  • 1 = декодирует в 2 байта
  • 2 == декодирует в 1 байт

В вашем примере Hellи oWorдействительны.Но ld==нет. Чтобы понять, почему см. эту справочную таблицу:https://en.wikipedia.org/wiki/Base64

ld==должен декодироваться только в один байт, потому что в конце у него два =. Но ldдекодируется в :100101 011101. В байте всего восемь 8 бит. Поэтому, когда вы декодируете свою строку с помощью base64 -d, только 100101 01будет преобразован в байт, а конец 1101будет полностью проигнорирован.

Любая строка с основанием 64, оканчивающаяся на ==, должна использовать только первые два бита последнего символа. То есть единственными допустимыми окончаниями с ==являютсяQ==A==w==g==

1
08.10.2021, 18:15
0 ответов

Теги

Похожие вопросы