Python生成Shadowsocks/ss的二维码

使用到了python的qrcode和base64库。
因为shadowsocks二维码使用了base64加密。

shadowsocks解码后不加密的格式为:

*加密方式* + ':' + *密码* + '@' + *服务器地址* + ':' + *服务器端口*

example
aes-256-cfb:123456@45.32.25.214:50000

然后对这个字符串做base64加密
然后最前面加上ss://

example(刚刚的例子加密就是这样)
ss://YWVzLTI1Ni1jZmI6MTIzNDU2QDQ1LjMyLjI1LjIxNDo1MDAwMA==

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

#生成二维码
qr = qrcode.QRCode(
    version=1,
    error_correction=qrcode.constants.ERROR_CORRECT_L,
    box_size=7,   #这里可以设置生成二维码的大小,数字越大生成的二维码越大
    border=4,
)

#加密二维码的源码
base64_str = ('aes-256-cfb:' + password + '@' + ip_address +':' + randomnum).encode(encoding="utf-8")
encodestr = base64.b64encode(base64_str)        #使用base64加密
shareqrcode_str = 'ss://' + encodestr.decode()    #最前面加上`ss://`

filename = 'qrcode.png'                                       #导出的图片名字

#导出二维码
qr.add_data(shareqrcode_str)
qr.make(fit=True)
img = qr.make_image()
img.save(filename)

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

→科学上网账号←

为您推荐

发表评论

电子邮件地址不会被公开。