IT技术之家 网络技术 Python生成ShadowsocksR的二维码

    Python生成ShadowsocksR的二维码

    SS的二维码生成看这里

    前言

    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://

    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)

    到这里就大功告成啦!!
    →科学上网账号←

    1、本站提供的软件均为 “试用版” 或者 “免费版”,仅供学习和研究使用
    2、友情提醒:内容全部搜集自网络,安装教程参照压缩包内的Readme.txt编写
    3、因使用本站软件产生的法律责任由使用者自行承担,本站不承担任何连带责任。
    4、如有内容不慎侵犯了您的权益,请速与我联系!
    如有转载请注明出处:https://www.ittel.cn/archives/2426.html
    guest
    0 评论
    内联反馈
    查看所有评论
    联系我们

    联系我们

    QQ:877196754

    在线咨询: QQ交谈

    邮箱: ittel@qq.com

    工作时间:周一至周日,8:00-21:00
    返回顶部
    0
    希望看到您的想法,请您发表评论x