Base64 agrupa bytes en bloques de 24 bits y publica cuatro símbolos de seis bits. El último bloque puede contener solo 8 o 16 bits. El relleno marca los bytes ausentes y los bits bajos no usados del último símbolo real deben ser cero. RFC 4648 exige esta regla para una codificación canónica. Sin ella, varias cadenas pueden decodificar a los mismos bytes y romper comparaciones o entradas de firma.

Uno o dos bytes forman el final

Un byte restante aporta ocho bits: dos símbolos Base64, cuatro bits bajos no usados en el segundo y dos iguales con relleno. Dos bytes aportan dieciséis bits: tres símbolos, dos bits no usados y un igual. Tres bytes usan cuatro símbolos sin relleno. Un perfil sin relleno quita solo los iguales; no cambia la regla de bits cero.

AA== es canónico; AB== no

Software permisivo puede aceptar ambas como un byte cero porque descarta los bits bajos no cero de B. RFC 4648 canónico exige esos cuatro bits en cero, así que A es el único segundo símbolo válido. Base64Lens informa NON_CANONICAL_BITS para AB== y para AB sin relleno. Rechaza la escritura ambigua antes de mostrar resultado.

Los errores estrictos revelan diferencias

Espacios, iguales internos, más de dos caracteres de relleno, longitud con relleno fuera de cuartetos y longitud sin relleno módulo cuatro igual a uno son fallos distintos. Base64Lens no elimina saltos ni repara relleno porque eso pertenece a MIME u otro formato. Ajusta según la especificación productora y compara con la biblioteca receptora usando casos revisados sin secretos.