How do I encode/decode short strings as Base64 using GWT?

后端 未结 4 1364
庸人自扰
庸人自扰 2020-12-16 15:07

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?

相关标签:
4条回答
  • 2020-12-16 15:16

    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.

    0 讨论(0)
  • 2020-12-16 15:18

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

    0 讨论(0)
  • 2020-12-16 15:26

    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.

    0 讨论(0)
  • 2020-12-16 15:34

    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>
    
    0 讨论(0)
提交回复
热议问题