6.2 附录-RSA加密方案

公钥的使用方式,如下:

步骤1. 获取RSA公钥:调用控制台 GET 接口:/api/v1/admin/getConfig 获取公钥数据。

步骤2. 使用公钥进行加密:调用开发语言相关的 rsa 加密算法接口,使用步骤1中获取到的公钥对数据进行加密。

具体操作步骤如下(以 Python3.6 举例):

import rsa
import requests

def get_console_config():
    """
    获取控制台基本配置接口,包含:rsa加密信息
    """
    url = 'https://{{SDPC-IP}}:4433/api/v1/admin/getConfig'
    return requests.get(url, verify=False).json()

def encrypt(password: str) -> str:
    """
    获取控制台rsa公钥,对用户密码进行加密
    """
    # 步骤1:获取加密公钥信息
    res = get_console_config()

    # 1.1 获取防重放随机数
    antiReplayRand = res['data']['crypto']['antiReplayRand']

    # 1.2 获取公钥
    pubKey = int(res['data']['crypto']['pubKey'], 16)
    pubKeyExp = int(res['data']['crypto']['pubKeyExp'])
    rsa_pubkey = rsa.PublicKey(pubKey, pubKeyExp)

    # 1.3 拼接待加密数据:密码及随机数
    raw = password + '_' + antiReplayRand

    # 步骤2:加密
    crypto = rsa.encrypt(raw.encode(), rsa_pubkey)

    return crypto.hex()

# 示例
print(encrypt("f2!U~hZ8"))
深信服科技 all right reserved,powered by Gitbook本文档更新于: 2024-11-20 11:03

results matching ""

    No results matching ""