The OP doesn't have base64-encoded strings. He's got hashes which include base64 strings. They are not base64 strings, and I don't know if they can contain quotes or not.
As for your comment about having this discussion before, it makes no sense. I'm telling the OP that just adding single quotes is not always acceptable, and I'm sure I've never told this to him before since he's never posted here before.
You are probably referring to the thread where you recommended a buggy version of
my $passwd_lit = $passwd;
my $path_lit = $path;
s#'#'\\''#g for $passwd_lit, $path_lit;
system("mysqldump --add-drop-table -uroot -p'$passwd_lit' mydatabase |
+ gzip -9c > '$path_lit'");
my ($passwd_lit, $path_lit) = map text_to_shell_lit, $passwd, $path;
system("mysqldump --add-drop-table -uroot -p$passwd_lit mydatabase | g
+zip -9c > $path_lit");
But that makes no sense either since you didn't use that code.