tool__ Ответов: 1

Почему, если я заменяю символ другим base64, он не может быть декодирован?


Ниже приведены два разных файла .bmp, которые отличаются только одним пикселем, в левом верхнем углу первого есть красный пиксель.
Когда я сравниваю эти два текста, разница обнаруживается в совершенно неожиданном месте, ближе к концу строк...
Мне позволено спросить, почему?



Что я уже пробовал:

Это не позволяет мне публиковать строки base64...

Richard MacCutchan

Пожалуйста, используйте Улучшить вопрос ссылка выше и добавить соответствующие детали. В его нынешнем виде невозможно догадаться, что вы имеете в виду.

1 Ответов

Рейтинг:
0

OriginalGriff

Мы не можем видеть данные, но это зависит от трех вещей
Во-первых, формат BMP-файлов, который может быть совсем не таким, как вы ожидаете: Формат файла BMP - Википедия[^] - он может содержать целую нагрузку больше, чем просто пиксельные данные, и все это является "передней" частью файла - так что фактические пиксельные биты находятся в конце, а не в начале. Также очень возможно, что изменение пикселя приведет к добавлению или вычитанию частей информации заголовка.
Во - вторых, Base64 не является алгоритмом кодирования-это алгоритм перевода, который "распределяет" значение байтов по нескольким выходным символам: таким образом, изменение значения пикселя может изменить несколько значений в выходных данных.
В - третьих, если вы начнете произвольно изменять значения в реальном файле (а не в данных изображения, с которыми работает большинство приложений), вы можете легко сделать файл больше не читаемым как действительный BMP-файл вообще-и для этого не требуется больших изменений! Подумайте об этом как о номере вашей банковской карты: если вы измените один бит в нем, то произойдет одно из двух: ваша банковская карта либо получит доступ к неправильному счету (очень маловероятно), либо ваша карта будет отклонена, поскольку номер больше не действителен (номера банковских карт включают проверку ошибок, чтобы гарантировать, что небольшие изменения действительно трудно пройти незамеченными).


tool__

очень информативно спасибо
оказывается, самое странное, что строки отличаются только одним символом...