python远程登录Admin.NET


def getCipherPassword(password):
    private_key = '8EDB615B1D48B8BE188FC0F18EC08A41DF50EA731FA28BF409E6552809E3A111'  # 这里假设你已经有了私钥字符串,实际中需通过特定方法生成
    public_key = '0484C7466D950E120E5ECE5DD85D0C90EAA85081A3A2BD7C57AE6DC822EFCCBD66620C67B0103FC8DD280E36C3B282977B722AAEC3C56518EDCEBAFB72C5A05312'   # 同理,公钥字符串

    # 生成SM2密钥对
    sm2 = gmssl.sm2.CryptSM2(public_key=public_key,private_key=private_key,mode=1)

    # 加密
    ciphertext = sm2.encrypt(password.encode())
    print(f"加密后的消息(二进制形式): {ciphertext.hex()}")
    
    return ciphertext.hex()
        
def login():
    # 登录页面的URL
    login_url = 'http://localhost:5005/api/sysAuth/login'
    headers = {
       # 'Authorization': 'Bearer YourAccessToken',  # 替换为您的访问令牌或其他认证信息
        'Content-Type': 'application/json'  # 根据接口要求添加请求头
    }
    password = getCipherPassword('密码')
    # 登录表单的数据
    payload = {
        'account': 'superadmin',
        'password': password,
        'schoolId': 'npjx',
        'code': '',
        'codeId':0,
        'userid':''
    }
    print(payload)
    # 使用Session保持会话状态
    session = requests.Session()

    # 发送POST请求以登录
    login_response = session.post(login_url,data=str(payload),headers=headers)
            
    # 检查登录是否成功
    if login_response.status_code == 200:
        print("登录成功!")
        try:
            error_info = login_response.json()  # 尝试解析错误信息
            print("错误信息:", login_response.text)
        except ValueError:
            # 如果响应不是 JSON 格式,打印文本内容
            print("错误信息:", login_response.text)
    else:
        print("登录失败")

参考文章:国密sm2的Vue、Python、Java互通使用

posted @ 2024-09-30 21:05  shiningrise  阅读(24)  评论(0编辑  收藏  举报
// 侧边栏目录 // https://blog-static.cnblogs.com/files/douzujun/marvin.nav.my1502.css