如何将base 64用于api低于26的设备



我正在开发一个应用程序,该应用程序使用授权密钥将用户连接到应用程序服务器。为了识别授权密钥,必须使用授权密钥本身和用户试图从服务器发起的操作对其进行解码。我有下面对授权密钥进行编码的第一行代码,以及使用编码的其他区域:

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行代码?有人建议我使用"importandroid.util.Base64;"与"Java.util.Base64"相反,但它返回错误。无法解析方法getEncode((请帮助

有人建议我使用'import-android.util.Base64;'与"Java.util.Base64",但它返回了错误cannot resolve方法getEncoder((

android.util.Base64encodeToString等效于getEncoder().encode(args)

你可以像一样使用

String Authkey= "";
if (VERSION.SDK_INT >= 26) {
Authkey = Base64.getEncoder().encode(auth_.getBytes()).toString();
} else {
Authkey = android.util.Base64.encodeToString(auth_.getBytes(), 0)
}

最新更新