Pokud to uděláte obráceně, zjistíte, že řetězec není úplný:
$ echo '{"foo":"bar","baz":"bat"}' | base64
eyJmb28iOiJiYXIiLCJiYXoiOiJiYXQifQo=
$ echo "eyJmb28iOiJiYXIiLCJiYXoiOiJiYXQifQo=" | base64 -di
{"foo":"bar","baz":"bat"}
Výňatky z Proč kódování base64 vyžaduje výplň, pokud vstupní délka není dělitelná 3?
Co jsou výplňové znaky?
Výplňové znaky pomáhají splnit požadavky na délku a nemají žádný význam.
Výplň je však užitečná v situacích, kdy jsou řetězce zakódované v base64 zřetězeny tak, že se ztratí délky jednotlivých sekvencí, k čemuž může dojít například ve velmi jednoduchém síťovém protokolu.
Pokud jsou nevyplněné řetězce zřetězeny, není možné obnovit původní data, protože se ztratí informace o počtu lichých bajtů na konci každé jednotlivé sekvence. Pokud se však použijí vycpané sekvence, nevznikne žádná nejednoznačnost a sekvenci jako celek lze dekódovat správně.
Nástroj příkazového řádku je vybíravý, pokud jde o přítomnost výplňových znaků. Tento řetězec je dlouhý 34 znaků, takže by měly být dva =
podepíše jako výplň na konci.
$ echo "eyJmb28iOiJiYXIiLCJiYXoiOiJiYXQifQ==" | base64 -di; echo
{"foo":"bar","baz":"bat"}