开发Outline移动端:如何将JSON文件转为兼容的Access Key?
将Shadowsocks JSON配置转换为Outline Access Key
Outline的Access Key本质是URL安全Base64编码的Shadowsocks配置字符串,格式为ss://<base64编码内容>[#备注],其中编码内容是加密方式:密码@服务器地址:端口的组合。
在Outline Apps仓库中,确实有现成的工具函数处理这种转换,核心逻辑位于shared/src/access-key.ts文件中,你可以直接复用其中的createAccessKey函数:
仓库内的实现方式
- 引入依赖:如果你的移动端项目已经接入Outline的共享代码模块,直接导入该函数:
import { createAccessKey } from './shared/src/access-key';
- 传入配置生成Key:将你的JSON配置映射为函数所需参数:
const ssConfig = { server: "www.example.com", server_port: 443, method: "chacha20-ietf-poly1305", password: "0MIZb3fhUNDzQBAW11D5Tr" }; const outlineAccessKey = createAccessKey({ host: ssConfig.server, port: ssConfig.server_port, encryptionMethod: ssConfig.method, password: ssConfig.password, name: "自定义服务器名称" // 可选,会作为Access Key的备注部分 });
手动实现转换(无需依赖仓库代码)
如果需要轻量实现,也可以手动完成编码:
- 第一步:拼接Shadowsocks配置字符串:
chacha20-ietf-poly1305:0MIZb3fhUNDzQBAW11D5Tr@www.example.com:443 - 第二步:对上述字符串做URL安全的Base64编码(替换
+为-,/为_,移除末尾=) - 第三步:前缀加上
ss://,可选添加#备注,最终得到类似:ss://Y2hhY2hhMjAtaWV0Zi1wb2x5MTMwNTowTUlYYjNmaFVORHpRQkFXMTFENUtyQHd3dy5leGFtcGxlLmNvbTo0NDM=#MyOutlineServer
内容的提问来源于stack exchange,提问作者rez
相关产品推荐
相关产品推荐

