Base64 - полностью детерминированное, обратимое преобразование, но оно не работает для каждого символа (как вы также можете наблюдать по выходной длине, не являющейся кратным входному значению).
Скорее, группы из трех байтов (24 бита) кодируются одновременно, превращая их в четыре 6-битных числа (следовательно, основание 64 = 2 ^ 6). Если длина ввода не кратна трем, она дополняется и обозначается как таковая, помещая символы =
в конце вывода.
Следовательно, общие подстроки в разных входах будут отображаться как общая подстрока в выходных данных только в том случае, если они выровнены в этом трехбайтовом кадре и сгруппированы в одинаковые тройки.
the cat sat on the mat
dGhlIGNhdCBzYXQgb24gdGhlIG1hdA==
he cat sat on the mat
aGUgY2F0IHNhdCBvbiB0aGUgbWF0
e cat sat on the mat
ZSBjYXQgc2F0IG9uIHRoZSBtYXQ=
cat sat on the mat
IGNhdCBzYXQgb24gdGhlIG1hdA==
Обратите внимание, что если вы усекаете ровно три символа ("the", оставляя пробел), вывод снова становится узнаваемым.