Freephone Panwal
Freephone Panwal

Reputation: 1591

Base64 encoding Allowed Characters

I'm using Base64 encoding for encoding user id field in Java.

String abc = new String(Base64.encodeBase64("Actualuseridfield"));

I want to know whether the string abc above will contain the character " , : or not?

When the Base64 encoded string is returned in abc, will it ever contain below characters?

" <double quote> 
, <comma> 
: <colon>

Upvotes: 46

Views: 51954

Answers (3)

Jemolah
Jemolah

Reputation: 2192

If you have a proper encoder for Base64, you will not see special characters except:

[A-Z][a-z][0-9][+/] and the padding char '=' at the end to indicate the number of zero fill bytes

There is another Base64 character set available which replaces [+/] by [_-] making the encoding URL-safe.

Nevertheless the specification allows to include any other character. Often the Base64 encoded data contains a line feed '\n' every 76 characters. Any character except the ones mentioned above has to be removed during decoding. The padding characters indicate the number of zero bytes appended to apply to n*4 output characters.

Upvotes: 30

jambriz
jambriz

Reputation: 1303

transforming "weird" and non printable characters is kind of the whole point of base64, so no, you wont see those. more info here http://email.about.com/cs/standards/a/base64_encoding.htm

Upvotes: 5

Tap
Tap

Reputation: 6522

You will not see any commas, colons, or double quotes in a Base64 encoded string. You will see equals signs since they're used to pad the ending content.

Upvotes: 51

Related Questions