mirror of
https://github.com/daiyanan1992/qinglongtest
synced 2025-12-21 01:04:54 +08:00
优化代码
This commit is contained in:
@@ -5,7 +5,7 @@
|
|||||||
# @Time : 2022/8/10 13:23
|
# @Time : 2022/8/10 13:23
|
||||||
# -------------------------------
|
# -------------------------------
|
||||||
"""
|
"""
|
||||||
联通app抽奖 入口:app首页下拉 话费派送中
|
联通app抽奖 入口:联通app 搜索 阅读专区 进入话费派送中
|
||||||
1. 脚本仅供学习交流使用, 请在下载后24h内删除
|
1. 脚本仅供学习交流使用, 请在下载后24h内删除
|
||||||
2. 需要第三方库 pycryptodome 支持 命令行安装 pip3 install pycryptodome或者根据自己环境自行安装
|
2. 需要第三方库 pycryptodome 支持 命令行安装 pip3 install pycryptodome或者根据自己环境自行安装
|
||||||
3. 环境变量说明 PHONE_NUM(必需) UNICOM_LOTTER(选填) 自行新建环境变量添加
|
3. 环境变量说明 PHONE_NUM(必需) UNICOM_LOTTER(选填) 自行新建环境变量添加
|
||||||
|
|||||||
@@ -4,21 +4,29 @@
|
|||||||
# @Author : github@limoruirui https://github.com/limoruirui
|
# @Author : github@limoruirui https://github.com/limoruirui
|
||||||
# @Time : 2022/8/23 13:05
|
# @Time : 2022/8/23 13:05
|
||||||
# -------------------------------
|
# -------------------------------
|
||||||
from Crypto.PublicKey.RSA import importKey
|
from Crypto.PublicKey.RSA import importKey, construct
|
||||||
from Crypto.Cipher import PKCS1_v1_5
|
from Crypto.Cipher import PKCS1_v1_5
|
||||||
from base64 import b64encode
|
from base64 import b64encode
|
||||||
|
|
||||||
|
|
||||||
class RSA_Encrypt:
|
class RSA_Encrypt:
|
||||||
def __init__(self, key):
|
def __init__(self, key):
|
||||||
if isinstance(key, str):
|
if isinstance(key, str):
|
||||||
# 若提供的rsa公钥不为pem格式 则先将hex转化为pem格式
|
# 若提供的rsa公钥不为pem格式 则先将hex转化为pem格式
|
||||||
self.key = bytes.fromhex(key) if "PUBLIC KEY" not in key else key.encode()
|
# self.key = bytes.fromhex(key) if "PUBLIC KEY" not in key else key.encode()
|
||||||
|
self.key = self.public_key(key) if "PUBLIC KEY" not in key else key.encode()
|
||||||
else:
|
else:
|
||||||
print("提供的公钥格式不正确")
|
print("提供的公钥格式不正确")
|
||||||
def Encrypt(self, data, b64=False):
|
|
||||||
|
def public_key(self, rsaExponent, rsaModulus=10001):
|
||||||
|
e = int(rsaExponent, 16)
|
||||||
|
n = int(rsaModulus, 16) # snipped for brevity
|
||||||
|
pubkey = construct((n, e)).export_key()
|
||||||
|
return pubkey
|
||||||
|
|
||||||
|
def encrypt(self, data, b64=False):
|
||||||
pub_key = importKey(self.key)
|
pub_key = importKey(self.key)
|
||||||
cipher = PKCS1_v1_5.new(pub_key)
|
cipher = PKCS1_v1_5.new(pub_key)
|
||||||
rsa_text = cipher.encrypt(data.encode("utf8"))
|
rsa_text = cipher.encrypt(data.encode("utf8"))
|
||||||
rsa_text = b64encode(rsa_text).decode() if b64 else rsa_text.hex()
|
rsa_text = b64encode(rsa_text).decode() if b64 else rsa_text.hex()
|
||||||
return rsa_text
|
return rsa_text
|
||||||
# print(b64encode(bytes.fromhex("00A828DB9D028A4B9FC017821C119DFFB8537ECEF7F91D4BC06DB06CC8B4E6B2D0A949B66A86782D23AA5AA847312D91BE07DC1430C1A6F6DE01A3D98474FE4511AAB7E4E709045B61F17D0DC4E34FB4BE0FF32A04E442EEE6B326D97E11AE8F23BF09926BF05AAF65DE34BB90DEBDCEE475D0832B79586B4B02DEED2FC3EA10B3".lower())).decode())
|
|
||||||
@@ -6,12 +6,14 @@
|
|||||||
# -------------------------------
|
# -------------------------------
|
||||||
from requests import post
|
from requests import post
|
||||||
from json import dumps
|
from json import dumps
|
||||||
|
from sys import path
|
||||||
|
path.append("./tools")
|
||||||
from tool import get_environ
|
from tool import get_environ
|
||||||
|
|
||||||
tg_userId = get_environ("TG_USER_ID")
|
tg_userId = get_environ("TG_USER_ID", "", False)
|
||||||
tgbot_token = get_environ("TG_BOT_TOKEN")
|
tgbot_token = get_environ("TG_BOT_TOKEN", "", False)
|
||||||
tg_push_api = get_environ("TG_API_HOST")
|
tg_push_api = get_environ("TG_API_HOST", "", False)
|
||||||
pushplus_token = get_environ("PUSH_PLUS_TOKEN")
|
pushplus_token = get_environ("PUSH_PLUS_TOKEN", "", False)
|
||||||
|
|
||||||
def tgpush(title, content):
|
def tgpush(title, content):
|
||||||
url = f"https://api.telegram.org/bot{tgbot_token}/sendMessage"
|
url = f"https://api.telegram.org/bot{tgbot_token}/sendMessage"
|
||||||
@@ -37,8 +39,8 @@ def pushplus(title, content):
|
|||||||
post(url, headers=headers, data=dumps(data))
|
post(url, headers=headers, data=dumps(data))
|
||||||
except:
|
except:
|
||||||
print('推送失败')
|
print('推送失败')
|
||||||
def push(self, title, content):
|
def push(title, content):
|
||||||
if pushplus_token != "":
|
if pushplus_token != "":
|
||||||
self.pushplus(title, content)
|
pushplus(title, content)
|
||||||
if tgbot_token != "" and tg_userId != "":
|
if tgbot_token != "" and tg_userId != "":
|
||||||
self.tgpush(title, content)
|
tgpush(title, content)
|
||||||
@@ -73,5 +73,9 @@ def hmac_sha1(data, key):
|
|||||||
|
|
||||||
|
|
||||||
# 封装读取环境变量的方法
|
# 封装读取环境变量的方法
|
||||||
def get_environ(key, default=""):
|
def get_environ(key, default="", output=True):
|
||||||
return environ.get(key) if environ.get(key) else default
|
def no_read():
|
||||||
|
if output:
|
||||||
|
print_now(f"未填写环境变量 {key} 请添加")
|
||||||
|
return default
|
||||||
|
return environ.get(key) if environ.get(key) else no_read()
|
||||||
|
|||||||
Reference in New Issue
Block a user