echo
"proveitosamente" adiciona uma nova linha à saída, de modo que a base64 obedientemente codifica isso também. Diga echo
para não adicionar uma nova linha ou use printf.
$ echo hello | od -c
0000000 h e l l o \n
0000006
$ echo -n hello | od -c
0000000 h e l l o
0000005
$ printf '%s' hello | od -c
0000000 h e l l o
0000005
$ printf '%s' hello | base64
aGVsbG8=
$ echo -n hello | base64
aGVsbG8=