Как использовать базу 64 для устройств с API ниже 26? - PullRequest
0 голосов
/ 24 октября 2019

Я разрабатываю приложение, использующее ключ авторизации для подключения пользователей к серверу приложений с помощью залпа. Для того чтобы ключ авторизации был распознан, его необходимо декодировать как самим ключом авторизации, так и действием, которое пользователь пытается инициировать с сервера. У меня есть первая строка кода, которая кодирует ключ авторизации ниже, а также другие областигде используется кодировка:

  String authkey="xxxgafjeusjsj" ;
  String action ="pay" ;
  String auth=authkey+action
  String Authkey=Base64.getEncoder().encodeToString(auth_.getBytes());

 ..... 
  return Base64.getEncoder().encodeToString(signature);
  ...... 
  PKCS8EncodedKeySpec keySpecPKCS8 = new PKCS8EncodedKeySpec(Base64.getDecoder().decode(privateKeyContent));

Приведенный выше код работает нормально, однако последние 3 строки можно использовать только для устройств с API 26 и выше. Есть ли альтернативный код, который я могу использовать для последних 3 строк кода? Мне посоветовали использовать 'import android.util.Base64;'в отличие от 'Java.util.Base64', но он возвращает ошибку, не может разрешить метод getEncoder () Пожалуйста, помогите

1 Ответ

0 голосов
/ 24 октября 2019

Мне посоветовали использовать 'import android.util.Base64;'в отличие от 'Java.util.Base64', но он возвращает ошибку, не может разрешить метод getEncoder ()

android.util.Base64 имеет encodeToString в качестве эквивалента getEncoder().encode(args)

Youможно использовать как

String Authkey= "";

if (VERSION.SDK_INT >= 26) {
       Authkey = Base64.getEncoder().encode(auth_.getBytes()).toString();
} else {
      Authkey = android.util.Base64.encodeToString(auth_.getBytes(), 0)
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...