felix17 2022-03-02 04:26 采纳率: 100%
浏览 35
已结题

C# 如何解码SSR?

SSR:Y24wMS5lZmFuLm1lbjo4NzUxOm9yaWdpbjpyYzQtbWQ1Omh0dHBfcG9zdDpaV1poYm1OamVYVnUvP29iZnNwYXJhbT1Nak13TnpRdGRUa3phRTR5YVdGRk9TNWtiM2R1Ykc5aFpDNXRhV055YjNOdlpuUXVZMjl0JnByb3RvcGFyYW09JnJlbWFya3M9NmFhWjVyaXZNREUmZ3JvdXA9NmFXXzZhV3RZMlBrdXBFZ0xTQkg2SzZoNVlpUzc3eUlNVEF3TUVkQzc3eUo

使用Python脚本解码出来的结果:
脚本来自:https://github.com/luvvien/ss-ssr-url-parser/blob/master/ss_ssr_decode.py
{'ip': 'cn01.efan.men', 'port': '8751', 'protocol': 'origin', 'method': 'rc4-md5', 'obfs': 'http_post', 'password': 'efanccyun'}

但是使用Python的话,每一个使用者都要去配置运行环境,这样很麻烦。

所以我想请问一下是否可以使用C#进行解码?

我尝试使用以下代码进行解码:
string SSR = "Y24wMS5lZmFuLm1lbjo4NzUxOm9yaWdpbjpyYzQtbWQ1Omh0dHBfcG9zdDpaV1poYm1OamVYVnUvP29iZnNwYXJhbT1Nak13TnpRdGRUa3phRTR5YVdGRk9TNWtiM2R1Ykc5aFpDNXRhV055YjNOdlpuUXVZMjl0JnByb3RvcGFyYW09JnJlbWFya3M9NmFhWjVyaXZNREUmZ3JvdXA9NmFXXzZhV3RZMlBrdXBFZ0xTQkg2SzZoNVlpUzc3eUlNVEF3TUVkQzc3eUo";

byte[] newBytes = Convert.FromBase64String(SSR);

string orgStr = BitConverter.ToString(newBytes);

MessageBox.Show(orgStr);

但是无法成功运行,显示:The input is not a valid Base-64 string as it contains a non-base 64 character, more than two padding characters, or an illegal character among the padding characters.”

  • 写回答

2条回答 默认 最新

  • 码老头 2022-03-03 13:59
    关注

    楼上的解释是正确的,但算法似乎有点问题,以下是我修改后的示例:

    using System;
    using System.Text;
    
    namespace ConsoleApp4
    {
        class Program
        {
            static void Main(string[] args)
            {
                var ssr = "Y24wMS5lZmFuLm1lbjo4NzUxOm9yaWdpbjpyYzQtbWQ1Omh0dHBfcG9zdDpaV1poYm1OamVYVnUvP29iZnNwYXJhbT1Nak13TnpRdGRUa3phRTR5YVdGRk9TNWtiM2R1Ykc5aFpDNXRhV055YjNOdlpuUXVZMjl0JnByb3RvcGFyYW09JnJlbWFya3M9NmFhWjVyaXZNREUmZ3JvdXA9NmFXXzZhV3RZMlBrdXBFZ0xTQkg2SzZoNVlpUzc3eUlNVEF3TUVkQzc3eUo";
                Console.WriteLine(ssr.Length);
                ssr = ssr.Replace('-', '+').Replace('_', '/').PadRight(4*((ssr.Length+3)/4), '=');
                Console.WriteLine(ssr.Length);
                var newBytes = Convert.FromBase64String(ssr);
                var orgStr = Encoding.UTF8.GetString(newBytes);
                Console.WriteLine(orgStr);
            }
        }
    }
    

    运行结果:

    271
    272
    cn01.efan.men:8751:origin:rc4-md5:http_post:ZWZhbmNjeXVu/?obfsparam=MjMwNzQtdTkzaE4yaWFFOS5kb3dubG9hZC5taWNyb3NvZnQuY29t&protoparam=&remark
    s=6aaZ5rivMDE&group=6aW_6aWtY2PkupEgLSBH6K6h5YiS77yIMTAwMEdC77yJ
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 3月13日
  • 已采纳回答 3月5日
  • 创建了问题 3月2日

悬赏问题

  • ¥15 thinkphp6配合social login单点登录问题
  • ¥15 HFSS 中的 H 场图与 MATLAB 中绘制的 B1 场 部分对应不上
  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch