AlayaElla

新ip才换了一天就被墙了。。再次换新的。。

Python生成ShadowsocksR的二维码

SS的二维码生成看这里

前言

因为服务的替换为SSR了所以生成的二维码也相应的替换为了SSR的。
在网上找了下资料发现SSR的二维码比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.alaya.moe
    加密: 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.alaya.moe').encode(encoding="utf-8")).decode().replace('=','')
protocol='auth_chain_a'
method='none'
obfs='tls1.2_ticket_auth'
obfsparam=''
remarks='alaya'
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)

到这里就大功告成啦!!
我这里分享SS账号的文章就是这样生成的二维码,测试可用~
→科学上网账号←

点赞

发表评论

电子邮件地址不会被公开。 必填项已用*标注