Как мне кодировать / декодировать короткие строки как Base64, используя GWT? - PullRequest
15 голосов
/ 12 февраля 2010

Мне нужно закодировать короткую строку как base 64 в GWT и декодировать строку base 64 на сервере. У кого-нибудь есть служебный класс или библиотека для этого?

Ответы [ 4 ]

12 голосов
/ 30 марта 2012

Вы можете использовать собственный JavaScript для этого на клиенте во всех браузерах, кроме IE ≤ 9. На сервере вы можете использовать один из официальных классов .

Java / GWT:

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

Кодировка btoa.

6 голосов
/ 11 декабря 2014

Вы можете использовать класс BaseEncoding, предоставленный Guava.

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

Например:

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

И не забудьте добавить следующую строку в ваш XML-модуль GWT:

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

Класс BaseEncoding можно использовать длякак на стороне клиента GWT, так и на стороне сервера.

3 голосов
/ 05 февраля 2014

Вы можете взглянуть на https://github.com/mooreds/gwt-crypto

Обеспечивает кодирование base64 для GWT.

Base64.encode(string.getBytes());

Добавьте импорт ниже:

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

Не забудьте добавить следующую строку в ваш XML-модуль GWT:

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

Зависимость Maven

<dependency>
    <groupId>com.googlecode.gwt-crypto</groupId>
    <artifactId>gwt-crypto</artifactId>
    <version>2.3.0</version>
</dependency>
0 голосов
/ 27 марта 2011

Класс Base64 нельзя использовать на стороне клиента. Это должно быть подражать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...