Link to home
Start Free TrialLog in
Avatar of inzaghi
inzaghi

asked on

base64 decoding

I am using the import w3c.tools.codec.Base64Decoder;

to decode a base64 string, the method
new Base64Decoder(base64string).processString() returns a string object I need a byte representation of this data.
Is it correct to assume that we jsut need to call getBytes() at the end?
Avatar of girionis
girionis
Flag of Greece image

Yes, I would have thought that this is enough.

Regards
Yes. YOu must ask for thre correct encoding though
Avatar of inzaghi
inzaghi

ASKER

Will I still need to do this even if when I open the file for reading the data from as

br = new BufferedReader( new InputStreamReader( f, "UTF-8)) );
String str = br.readLine();
String decode = new Base64Decoder(str.processString();
byte[] b = decode.getBytes();
Avatar of inzaghi

ASKER

oops this refers to

>>Yes. YOu must ask for thre correct encoding though
Can you remind me how you've *written* the atoms?
Avatar of inzaghi

ASKER

username + \u241e + encrypteddata

I have tokenized the string based on the u241e
and to get the encypteddata back into byte data I have done the above ( i haven't shown  the full solution above though)
>>( i haven't shown  the full solution above though)

Well that's what's confusing me! Can you do so (and repeat what your quesition is ;-))?
When i say 'the full solution' i mean the full code for handling that part of the reading back of course
Avatar of inzaghi

ASKER

br = new BufferedReader( new InputStreamReader( f, "UTF-8)) );
while (str = br.readLine!=null){
 StringTokenizer st = new StringTokenizer(str, " \u241e");
 String user= st.nextToken();
 String base64 = st.nextToken();
String decodedS = new Base64Decoder(base64).processString();
byte[] b = decodedS.getBytes("UTF-8");
}                  }
In what way does processString work (i don't know the class)?
Forget that - i checked it. No - that call won't do as you originally had an encrypted byte array there, not a String, as far as i can remember
Avatar of inzaghi

ASKER

sorry 4 the late reply,

I am trying to get the original encrypted byte array.

Originall the byte array was encoded to base64.
I know need to decode it and get the bytes.

Dont understand why the following will not work?
String decodedS = new Base64Decoder(base64).processString();
byte[] b = decodedS.getBytes("UTF-8");

Avatar of inzaghi

ASKER

The actual string consists
of the username + seperator + encryptedData

The encrypted data is a byte array which has been encoded using base64

I don't understand why
String decodedS = new Base64Decoder(base64).processString();
byte[] b = decodedS.getBytes("UTF-8");


will not work?
ASKER CERTIFIED SOLUTION
Avatar of Mick Barry
Mick Barry
Flag of Australia image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of inzaghi

ASKER

Thanks objects, but why wont this work

String decodedS = new Base64Decoder(base64).processString();
byte[] b = decodedS.getBytes("UTF-8");
SOLUTION
Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
> Thanks objects, but why wont this work

Cause there is additional encoding involved in converting between byte arrays and Strings which will corrupt your data.
8-)