Bad base-64 error

user1118764 picture user1118764 · Apr 23, 2014 · Viewed 21k times · Source

I'm getting a "java.lang.IllegalArgumentException: bad base-64" on the following code:

byte[] msgBytes = Base64.decode(msgStr, Base64.NO_WRAP);

msgString is a String, and right before this line, I check the value of msgStr and it is "fl-ILw==". Is there anything wrong?

Thanks.

Answer

Izuel picture Izuel · Apr 23, 2014

According to RFC 4648(http://www.rfc-editor.org/rfc/rfc4648.txt) '-' character is not a valid Base64 character but on the other hand is valid for "URL and Filename safe Base 64 Alphabet".

So you could use Base64.URL_SAFE depending of the expected format of the string.