美文网首页
随记-探究 OpenApi 的加密方式

随记-探究 OpenApi 的加密方式

作者: DragonFangQy | 来源:发表于2023-12-19 08:53 被阅读0次

open api 主要参数如下

  • appKey 接口Key(app id)
  • appSecret 接口密钥
  • timeStamp 时间戳 毫秒
  • nonceStr 随机字符串
  • signature 加密字符串

客户端

  • 使用 appSecret 按照一定规则将 appKey timeStamp nonceStr 进行加密,得到密文 signature
  • 将 appKey timeStamp nonceStr 和 signature 一起上传

浅析

  • timeStamp 规定一个时间段,比如十分钟,防止暴力破解
  • nonceStr,防止冲重放攻击,需要服务端记录,并保证一段时间内不能再次使用

服务端

  • 根据 appKey 从数据库获取 appSecret
  • 按照和客户端相同的规则进行加密,得到密文,对比密文

小结

  • 客户端和服务端的加密方法相同
  • 本质上属于对称加密
  • 需要用户保管好密钥
import hashlib

class SignUtil(object):
    
    @staticmethod
    def create_sign(app_secret, **kwargs):

        temp_list = []
        for key, value in kwargs.items():
             
            if value not in (None, "") and key != "sign" and key != "key":
                temp_list.append(f"{key}={value}")
            
        temp_list.append(f"key={app_secret}")
        temp_str = ("&".join(temp_list)) .encode()

        sign = hashlib.md5(temp_str).hexdigest().upper()
        
        return sign


if __name__ == "__main__":
    
    # 用户端发起请求,生成签名后发送请求
    appSecret = "7214fefff0cf47d7950cb2fc3b5d670a"
    appId = "wx123456789"
    timestamp = "1583332804914"
    # 生成签名

    sorted_dict = {
        "appId":appId, 
        "timestamp":timestamp,
    }
    signature = SignUtil.create_sign(appSecret, appId=appId, timestamp=timestamp)
    print("签名:"+ signature )

    

到此结  DragonFangQy 2023.12.20

相关文章

  • Laravel框架学习笔记-AES加解密

    最近在开发账户中心,需要使用到AES对称加密。于是就对Laravel框架里的加密方式做了一点探究。 Laravel...

  • API Nginx | 2021-06-18

    https://openapi.78798.in[https://openapi.78798.in] ...

  • 加密方式方法总结

    加密方式有哪几种 每种加密方式的优缺点 怎么根据需要选择加密方式

  • iOS代码加密常用加密方式

    iOS代码加密常用加密方式,常见的iOS代码加密常用加密方式算法包括MD5加密、AES加密、BASE64加密,三大...

  • iOS常用加密方式

    iOS代码加密常用加密方式,常见的iOS代码加密常用加密方式算法包括MD5加密、AES加密、BASE64加密,三大...

  • 加密经济的意义何在?

    本文旨在以清晰、简单的概念解释加密经济。 文章将从三个层面切入,从比特币切入,研究加密经济的设计;然后,探究加密经...

  • 配置OpenAPI架构

    OpenAPI 是什么? Open API 即开放 API,也称开放平台。 所谓的开放 API(OpenAPI)是...

  • 一步步学习java后台(六)(OpenApi-Swagger的使

    OpenApi(Swagger) OpenApi,以前称为Swagger ,是最受欢迎的API文档规范之一。它允许...

  • ssh简介

    ssh的加密方式 互联网数据传输,没有进过加密是很危险的,使用数据加密方式进行保护是非常有必要的。目前加密的方式有...

  • mysql8.0 连接 找不到指定模块caching_sha2_

    首先查看数据库连接加密方式 plugin:连接加密方式 MySQL8.0加密方式为:caching_sha2_pa...

网友评论

      本文标题:随记-探究 OpenApi 的加密方式

      本文链接:https://www.haomeiwen.com/subject/mmdzgdtx.html