使用Base64加密时,系统提供的API有两种:Java.util.base64和android.util.base64
java.util.base64提供的方法只支持versionCode >= 26 无法完全适用所有版本:
kotlin写法:
var encodedBackUrl = "https://www.baidu.com"
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
encodedBackUrl = java.util.Base64.getEncoder().encodeToString(encodedBackUrl.toByteArray(Charsets.UTF_8))
}
android.util.base64 适用所有版本:
encodedBackUrl = Base64.encodeToString(encodedBackUrl.toByteArray(Charsets.UTF_8),Base64.NO_WRAP)
注意上面的flag并没有用Base64.DEFAULT,默认情况下字符串过长(一般超过76)时会自动在中间加一个换行符'\n'
为了避免编码后的string出现换行符,选用Base64.NO_WRAP