diff --git a/V2rayNG/app/src/main/java/com/v2ray/ang/fmt/ShadowsocksFmt.kt b/V2rayNG/app/src/main/java/com/v2ray/ang/fmt/ShadowsocksFmt.kt index 87ba74f8..dda9ac89 100644 --- a/V2rayNG/app/src/main/java/com/v2ray/ang/fmt/ShadowsocksFmt.kt +++ b/V2rayNG/app/src/main/java/com/v2ray/ang/fmt/ShadowsocksFmt.kt @@ -122,7 +122,7 @@ object ShadowsocksFmt : FmtBase() { fun toUri(config: ProfileItem): String { val pw = "${config.method}:${config.password}" - return toUri(config, Utils.encode(pw), null) + return toUri(config, Utils.encode(pw, true), null) } /** diff --git a/V2rayNG/app/src/main/java/com/v2ray/ang/fmt/SocksFmt.kt b/V2rayNG/app/src/main/java/com/v2ray/ang/fmt/SocksFmt.kt index 30bc08e4..ba7b86a9 100644 --- a/V2rayNG/app/src/main/java/com/v2ray/ang/fmt/SocksFmt.kt +++ b/V2rayNG/app/src/main/java/com/v2ray/ang/fmt/SocksFmt.kt @@ -51,7 +51,7 @@ object SocksFmt : FmtBase() { else ":" - return toUri(config, Utils.encode(pw), null) + return toUri(config, Utils.encode(pw, true), null) } /** diff --git a/V2rayNG/app/src/main/java/com/v2ray/ang/util/Utils.kt b/V2rayNG/app/src/main/java/com/v2ray/ang/util/Utils.kt index 148ce4ec..0864c09d 100644 --- a/V2rayNG/app/src/main/java/com/v2ray/ang/util/Utils.kt +++ b/V2rayNG/app/src/main/java/com/v2ray/ang/util/Utils.kt @@ -134,11 +134,16 @@ object Utils { * Encode a string to base64. * * @param text The string to encode. + * @param removePadding * @return The base64 encoded string, or an empty string if encoding fails. */ - fun encode(text: String): String { + fun encode(text: String, removePadding : Boolean = false): String { return try { - Base64.encodeToString(text.toByteArray(Charsets.UTF_8), Base64.NO_WRAP) + var encoded = Base64.encodeToString(text.toByteArray(Charsets.UTF_8), Base64.NO_WRAP) + if (removePadding) { + encoded = encoded.trimEnd('=') + } + encoded } catch (e: Exception) { Log.e(AppConfig.TAG, "Failed to encode text to base64", e) ""