RSA加密算法获取Token


加密算法获取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接口传递
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'])

Author: Feny Lau
Reprint policy: All articles in this blog are used except for special statements CC BY 4.0 reprint policy. If reproduced, please indicate source Feny Lau !
  TOC