123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102 |
- import base64
- import hashlib
- import os
- import random
- import time
- # import rsa as rsa
- import yaml
- from common.encrypt import genRat
- from common.request_util import *
- from common.yaml_util import read_yaml
- class DubugTalk:
- # 获得随机数
- def get_random_number(self, min, max):
- return str(random.randint(int(min), int(max)))
- def read_yaml(self, key):
- return read_yaml(key)
- # Md5加密
- def md5(self, args):
- # 以指定的编码格式编码字符串
- utf8_str = str(args).encode("utf-8")
- # MD5加密(哈稀算法)
- md5_str = hashlib.md5(utf8_str).hexdigest()
- return md5_str.upper()
- # base64加密
- def bs64(self, args):
- # 以指定的编码格式编码字符串
- utf8_str = str(args).encode("utf-8")
- # base64加密
- ba64_str = base64.b64encode(utf8_str).decode('utf-8')
- return ba64_str.upper()
- # RSA双钥加密
- # # 生成公钥私钥到指定文件
- # def create_key(self):
- # # 根据密钥长度生成公钥私钥
- # (public_key, private_key) = rsa.newkeys(1024)
- # # 报存公钥
- # with open("public.pem", "w+") as f:
- # f.write(public_key.save_pkcs1().decode())
- # # 报存私钥
- # with open("private.pem", "w+") as f:
- # f.write(private_key.save_pkcs1().decode())
- # 通过公钥加密
- # def public_key_jiami(self, args):
- # # 导入密钥
- # with open("public.pem") as f:
- # pubkey = rsa.PublicKey.load_pkcs1(f.read().encode())
- # # 加密
- # byte_str = rsa.encrypt(str(args).encode("utf-8"), pubkey)
- # # 把二进制转化成字符串格式
- # miwen = base64.b64encode(byte_str).decode("utf-8")
- # return miwen
- # 通过私钥解密
- # def private_key_jiemi(self,args):
- # with open("private.pem") as f:
- # prikey = rsa.PrivateKey.load_pkcs1(f.read().encode())
- # # 把字符串转换二进制
- # byte_key = base64.b64decode(args)
- # #解密
- # mingwen = rsa.decrypt(byte_key, prikey).decode()
- # return mingwen
- # singe签名
- def singes(self, yaml_path):
- last_url = ""
- last_data = {}
- with open(os.getcwd() + yaml_path, encoding="utf-8") as f:
- yaml_value = yaml.load(f, Loader=yaml.FullLoader)
- for caseinfo in yaml_value:
- # print(caseinfo)
- caseinfo_keys = caseinfo.keys()
- # 判断一级关键字是否存在:name,request,validate
- if "request" in caseinfo_keys:
- # 判断url
- if "url" in caseinfo['request'].keys():
- last_url = caseinfo['request']['url']
- print(caseinfo['request']['url'])
- # 判断参数
- req = caseinfo['request']
- for key, value in req.items():
- if key in ["params", "data", "json"]:
- for p_key, p_value in req[key].items():
- last_data[p_key] = p_value
- last_url = last_url[last_url.index("?") + 1:len(last_url)]
- # 把url字典格式加入到last_data字典格式里面
- lis = last_url.split("&")
- print(lis)
- for a in lis:
- last_data[a[0:a.index('=')]] = a[a.index('=') + 1:len(a)]
- from common.request_util import RequestUtil
- # last_data = RequestUtil(self).replace_value(last_data)
- print(last_data)
- def genRat(self, url: str):
- return genRat(url, 10231)
|