Python生成ShadowsocksR的二维码
Python生成ShadowsocksR的二维码

Python生成ShadowsocksR的二维码

轩灵
2019-11-24 / 0 评论 / 2,792 阅读 /
  • 文章转载请注明来源!
  • / 正在检测是否收录...
    温馨提示:
    本文最后更新于2022年03月19日,已超过766天没有更新,若内容或图片失效,请留言反馈。

    Python生成ShadowsocksR的二维码

    SR的二维码比SS的要复杂多了。

    格式

    ssr的二维码和ss一样使用了base64的加密方式。
    不过需要注意的是加密方式一点要选择urlsafe的方式,同时去掉末尾的“=”符号。

      字符加密前的格式

    服务器地址 :服务器端口 :协议:加密方式:混淆:base64加密的密码/?参数字段
    • 参数字段(如果没配置参数则可以不用填):

      • SSR混淆参数之类的,用base64加密之后的字符串

        obfsparam=混淆参数&protoparam=协议参数&remarks=备注&group=群组&uot=udp_over_tcp配置&udpport=服务器UDP端口
        然后对这个字符串做base64加密,然后最前面加上ssr://

    示例

    服务器IP: 108.61.161.239
    端口: 1234
    密码: www.ittel.cn
    加密: none
    协议: auth_chain_a
    协议参数: (空)
    混淆: tls1.2_ticket_auth
    混淆参数:(空)
    备注: alaya
    群组:moe    

     加密前为:

    108.61.161.239:1234:auth_chain_a:none:tls1.2_ticket_auth:d3d3LmFsYXlhLm1vZQ/?obfsparam=&remarks=YWxheWE&group=bW9l

     加密后为:

    ssr://MTA4LjYxLjE2MS4yMzk6MTIzNDphdXRoX2NoYWluX2E6bm9uZTp0bHMxLjJfdGlja2V0X2F1dGg6ZDNkM0xtRnNZWGxoTG0xdlpRLz9vYmZzcGFyYW09JnJlbWFya3M9WVd4aGVXRSZncm91cD1iVzls

     然后把整个字符生成二维码

    关键代码(Python)

        import base64
        import qrcode
    
        ##SSR配置
        server='108.61.161.239'
        server_port=(1234).__str__()
        password=base64.urlsafe_b64encode(('www.ittel.cn').encode(encoding="utf-8")).decode().replace('=','')
        protocol='auth_chain_a'
        method='none'
        obfs='tls1.2_ticket_auth'
        obfsparam=''
        remarks='ittel'
        group='moe'
    
        ##SSR参数
        main_part = server + ":" + server_port + ":" + protocol + ":" + method + ":" + obfs + ":" + password
        param_str = 'obfsparam=' + base64.urlsafe_b64encode(obfsparam.encode(encoding="utf-            8")).decode().replace('=','')\
        +'&remarks=' + base64.urlsafe_b64encode(remarks.encode(encoding="utf-8")).decode().replace('=','')\
        +'&group=' + base64.urlsafe_b64encode(group.encode(encoding="utf-8")).decode().replace('=','')
    
        shareqrcode_str = "ssr://"+base64.urlsafe_b64encode((main_part + "/?" +     param_str).encode(encoding="utf-8")).decode().replace('=','');
    
        print(main_part + "/?" + param_str)
        print(shareqrcode_str)
    
        ##生成二维码
        qr = qrcode.QRCode(
            version=1,
            error_correction=qrcode.constants.ERROR_CORRECT_M,
            box_size=8,
            border=4,
        )
        filename = 'qrcode.png'
        qr.add_data(shareqrcode_str)
        qr.make(fit=True)
        img = qr.make_image()
        img.save(filename)
    本文共 230 个字数,平均阅读时长 ≈ 1分钟
    131

    海报

    点点赞赏,手留余香

    给TA打赏
    如果觉得文章对您有用,快来赞赏一个吧!
      取消
      扫码打赏
      支付金额随意哦!

      评论 (0)

      语录
      取消