RSA加密算法获取Token

2024-05-06 09:42:49 浏览数 (5)

加密算法获取Token

https://blog.csdn.net/u010048119/article/details/126049523

场景:

自动化测试需要通过数据加密计算secret, 接口传递才能获得token

目标:

使用接口给的 spk(公钥) 和secret(加密内容) 加密, 接口传递获取token

T任务:

python实现RSA工具类实现公钥加密

A实现:

  • 编码: 对spk和secret进行编码为byte和python对象
  • 加密: 使用rsa的加密算法进行加密
  • 解码: 将加密后的secret解码为str接口传递
代码语言:javascript复制
import base64
import rsa

class RSAUtiles():
    @classmethod
    def rsaEncrypt(self,  msg: str, public_key: str):
        """
        :param public_key: 非pem格式 str
        :return:
        """
        # 1.1公钥字符串添加为 PEM格式
        public_key_str_pem = f"-----BEGIN PUBLIC KEY-----n{public_key}n-----END PUBLIC KEY-----"

        # 1.2PEM格式转化为byte格式
        public_key_byte = public_key_str_pem.encode('utf8')

        # 1.3 pem_str 转化为 PublicKey对象
        public_key = rsa.PublicKey.load_pkcs1_openssl_pem(public_key_byte)

        # 2.msg str转化为byte格式
        msg_byte = msg.encode('utf8')

        # 3.加密
        # rsa库进行加密
        secret_byte = rsa.encrypt(msg_byte, public_key)

        # byte2uft8
        secret_str = base64.b64encode(secret_byte).decode()

        return secret_str
        
        
if __name__ == '__main__':
    import requests
    base_url = 'http://10.40.38.71:88'
    path = '/api/ec/dev/auth/regist'
    headers = {
        'appid':'xxxxxx'
    }
    rsp = requests.post(url=base_url path, headers=headers)
    secret = RSAUtiles.rsaEncrypt(rsp.json()['secret'], rsp.json()['spk'])

1 人点赞