15

I need to encode a short String as base 64 in GWT and decode the base 64 string on the server. Anyone have utility class or library for this?

2
  • 1
    possible duplicate of Decode Base64 data in java Commented Sep 9, 2011 at 18:44
  • 19
    People should start noticing that a GWT question probably has a different context from Java SE and is not a duplicate of a Java SE question. What runs on Java SE requires additional treatment to be placed on GWT. Commented Oct 21, 2011 at 13:47

4 Answers 4

15

You can use native JavaScript for this on the client on all browsers except IE ≤ 9. On the server you can use one of the official classes.

Java/GWT:

private static native String b64decode(String a) /*-{
  return window.atob(a);
}-*/;

Encode is btoa.

Sign up to request clarification or add additional context in comments.

Comments

7

You can use the BaseEncoding class provided by Guava.

http://docs.guava-libraries.googlecode.com/git/javadoc/com/google/common/io/BaseEncoding.html

For example:

try {
  String encoded = BaseEncoding.base64().encode("foo".getBytes("UTF-8"))
} catch (UnsupportedEncodingException e) {
  GWT.log(e.getMessage());
}

And don't forget to add the following line to your GWT module XML:

<inherits name="com.google.common.io.Io"/>

The BaseEncoding class can be used on both the GWT client side and server side.

Comments

3

You can have a look at https://github.com/mooreds/gwt-crypto

It provides base64 encoding to GWT.

Base64.encode(string.getBytes());

Add the import below :

import com.googlecode.gwt.crypto.bouncycastle.util.encoders.Base64;

Don't forget to add the following line to your GWT module XML:

<inherits name="com.googlecode.gwt.crypto.Crypto"/>    

Maven dependency

<dependency>
    <groupId>com.googlecode.gwt-crypto</groupId>
    <artifactId>gwt-crypto</artifactId>
    <version>2.3.0</version>
</dependency>

Comments

0

Base64 class can't be used on the client side. It would have to be emulated.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.