[BUG] 当服务器配置中 `password` 字段含有特殊字符 (`=`) 时转换错误
Author: iCastureCreated Apr 15, 2025Updated Feb 5, 2026
确认版本最新
- 我已经确认在最新Action编译的版本中复现
检索issue
- 我已经确认之前没有issue涉及此BUG
subconverter版本
Commit 6d312fe52cf05a76e06038feef6011d3c9b77e4f
转换过程
当 password 字段中含有特殊字符 (=) 时
转换设置
HK IEPL 01 = ss, example.com, 1111, encrypt-method=2022-blake3-aes-256-gcm, password="NvEZA+KT5mcN1vrXzxxzUcTSNMXNjRwsUcpy2jUrYwc=:j5YFQufpWYHGbCXeFosyrvY6ivascXL94FQIGCPFi18=", udp-relay=true, fast-open=false复现步骤
场景:使用 subconverter 来过滤节点列表(只输出含有某个特定地区节点的 Surge Node List)。
在使用 SS2022 协议时,PSK 在实际部署中的常见做法是以 Base64 形式表示。由于 Base64 编码的填充规则,password 字段中可能会出现 =,这是符合预期的行为。例如:
HK IEPL 01 = ss, example.com, 1111, encrypt-method=2022-blake3-aes-256-gcm, password="NvEZA+KT5mcN1vrXzxxzUcTSNMXNjRwsUcpy2jUrYwc=:j5YFQufpWYHGbCXeFosyrvY6ivascXL94FQIGCPFi18=", udp-relay=true, fast-open=false但在经过 subconverter 之后,这条服务器配置会错误地变成:
HK IEPL 01 = ss, example.com, 1111, encrypt-method=2022-blake3-aes-256-gcm, password="NvEZA+KT5mcN1vrXzxxzUcTSNMXNjRwsUcpy2jUrYwc", udp-relay=true, fast-open=falsesubconverter 在 password 中的第一个 = 处截断,只保留了 = 前面的部分,导致 password 字段错误。
期望结果
HK IEPL 01 = ss, example.com, 1111, encrypt-method=2022-blake3-aes-256-gcm, password="NvEZA+KT5mcN1vrXzxxzUcTSNMXNjRwsUcpy2jUrYwc=:j5YFQufpWYHGbCXeFosyrvY6ivascXL94FQIGCPFi18=", udp-relay=true, fast-open=false实际结果
HK IEPL 01 = ss, example.com, 1111, encrypt-method=2022-blake3-aes-256-gcm, password="NvEZA+KT5mcN1vrXzxxzUcTSNMXNjRwsUcpy2jUrYwc", udp-relay=true, fast-open=false错误信息
Source: tindy2013/subconverter