Шестнадцатеричная строка в строку Base64 в Java для android - PullRequest
0 голосов
/ 18 февраля 2020

Я пытаюсь преобразовать шестнадцатеричную строку в строку base64 в java. Я уже пробовал этот ответ , но Hex.decodeHex показывает ошибки.

    byte[] decodedHex;
    byte[] encodedHexB64;

    try {
      decodedHex = Hex.decodeHex("1234567890123458");
      encodedHexB64 = Base64.encodeBase64(decodedHex);
      System.out.println("FINAL ENCODED STRING -> "+encodedHexB64.toString());
     .
     ..}

Сбрасывает ниже ошибки

E/AndroidRuntime: FATAL EXCEPTION: main

java.lang.NoSuchMethodError: No static method decodeHex(Ljava/lang/String;)[B in class Lorg/apache/commons/codec/binary/Hex; or its super classes (declaration of 'org.apache.commons.codec.binary.Hex' appears in /system/framework/org.apache.http.legacy.boot.jar)

Я также пытался преобразовать его в байтовый массив, а затем преобразовать в строку base64, но это также не работает для меня.

byte[] decodedHex;
byte[] encodedHexB64;
try {
  decodedHex = hexStringToByteArray(finalString); // finalString = 1234567890123458
  encodedHexB64 = Base64.encodeBase64(decodedHex);
  System.out.println("FINAL ENCODED STRING -> "+encodedHexB64.toString()); 
  .
  ..}

  // Desired output = EjRWeJASNFg= 
  // But actual output is FINAL ENCODED STRING -> [B@173943

проверка того же входа здесь дает желаемый результат

Я также пытался использовать Rhino для использования javascript окружения, чтобы получить это значение из функций javascript, но это также не работает для меня. В java должен быть какой-то способ получить это. Ваша помощь будет оценена.

...