Revert 5860827 (switch to base64-encoding the entire string)

This didn't properly handle escaping the separators in any of the
components.
base64 encode the salt for consistency
switch to colon as the separator char