Is there some way to programatically tell if a string is base64 encoded?
Carl Daniel [VC++ MVP] - 28 Jun 2006 02:52 GMT
> Is there some way to programatically tell if a string is base64
> encoded?
In general, no.
However, if a string contains only the base64 characrter set [a-zA-Z0-9+/],
ends in 0, 1 or 2 equals signs ('=') and is a multiple of 4 characters in
total length, then it is a valid base64 encoding of something. Of course,
that could occur completely by coincidence - the string "c3U=" is a valid
Base64 string, but it's not the encoding of anything particularly useful.
-cd
William Stacey [MVP] - 28 Jun 2006 03:34 GMT
I think the easiest and fastest way is to just try and decode it and catch
falure. If it fails, it is not base64 or is invalid base64 for some reason.
Then you can tell in 1 pass. If you try to walk it first just see if it is
valid, you end up with 2 passes (1 for the test and 1 for the actual
decode) - so IMO, it is not worth it anyway.

Signature
William Stacey [MVP]
| Is there some way to programatically tell if a string is base64 encoded?