鉴权C# HmacSHA256加密与java HmacSHA256一致

news/2024/7/3 2:25:07

public static string HmacSHA256Encrypt(string secret, string signKey)
{
  string signRet = string.Empty;
  using (HMACSHA256 mac = new HMACSHA256(Encoding.UTF8.GetBytes(secret)))
  {
    mac.Initialize();
    byte[] hash = mac.ComputeHash(Encoding.UTF8.GetBytes(signKey));
    sbyte[] sb = new sbyte[hash.Length];
    for (int i = 0; i < hash.Length; i++)
    {
       sb[i] =  hash[i] <= 127 ? (sbyte)hash[i] : (sbyte)(hash[i] - 256);
    }
    byte[] unsignedByteArray = (byte[])(Array)sb;
    signRet = Convert.ToBase64String(unsignedByteArray);
  }
  return signRet;
}

鉴权说明

用户接入开放平台时,平台管理员会提供对应的appKey、secretKey,简称ak、sk,该key在使用时区分环境,即测试、生产环境所对应的key不同,用户凭借key按照指定方式生成对应的签名信息,并且在访问平台接口时携带相应的签名信息用于身份鉴定,该key非常重要,请妥善保管,避免因key泄露导致的数据安全问题。

签名生成步骤

\1. 获取当前系统时间戳(毫秒级),注意该时间戳与平台时间保持在10min差距以内

\2. 将sk作为HmacSHA256算法的key,对1获取的内容进行摘要计算

\3. 将2计算的内容以base64形式输出

\4. 将ak、3计算的内容以英文冒号,即 : 符号拼接,作为签名

签名使用方式

\1. 将1获取的内容作为HTTP请求头参数X-Kt-Time的值

\2. 将4获取的内容作为HTTP请求头参数X-Kt-Authorization的值

\3. 在访问开放平台接口时,附带1、2内容进行访问即可


http://lihuaxi.xjx100.cn/news/1115767.html

相关文章

OpenPCDet系列 | 3.OpenPCDet点云检测框架训练准备流程

文章目录 训练准备流程1. dataloader部分2. network部分3. optimizer部分4. scheduler部分训练准备流程 对于OpenPCDet中模型的训练过程如下所示,在训练前一般需要进行4个部分的准备:数据准备、网络模型准备、以及优化器和学习率调度器。下面对这4个大部分分别介绍。主要就是…

程序设计入门——C语言 2023年5月9日

程序设计入门——C语言 一、基础理解1、什么是计算机&#xff1f;如何用计算机做事情&#xff1f;什么是应用软件&#xff1f;编程语言干啥的&#xff1f;计算机与人脑&#xff1f;学习编程能干啥&#xff1f;2、计算机-程序-算法3、解释语言vs编译语言 课程来源&#xff1a;链…

SpringBoot——入门程序的简单介绍

简单介绍&#xff1a; 在之前我们创建了一个基础的SpringBoot的程序&#xff0c;可以看到&#xff0c;我们只是启动了一个Java程序&#xff0c;但是它启动了一个Tomcat的服务器。其实在这里面他还启动了很多的服务&#xff0c;只不过这些服务我们都没有用到&#xff0c;我们就…

UNIAPP实战项目笔记63 当前用户查询收货地址的前后端实现

UNIAPP实战项目笔记63 当前用户查询收货地址的前后端实现 总体思路 当前登陆的时候收货地址( token ) header:{ token:true } 前端: 后端: 1.设计数据库(新建一个收货地址表) 收货地址表,需要和user表关联 [字段:用户id] 2.创建一个接口 查询收货地址接口文档 1.1 接口功能 …

【STL】模拟实现vector(详解)

文章目录 前言vector的模拟实现一&#xff0c;搭建框架二&#xff0c;实现构造函数三&#xff0c;构造的其他方式传统写法1.拷贝构造2. 重载赋值操作符3. 使用迭代器构造4. 初始化为N个val的vector 现代写法1. 拷贝构造2. 赋值重载 四&#xff0c;实现vector相关函数1. reserve…

UDP 协议详解

UDP (User Datagram Protocol) 是在 OSI 七层模型中的传输层上的一种协议。它和 TCP 类似是用来传输数据的&#xff0c;但是 UDP 更加简单、高效、灵活&#xff0c;适用于对数据传输速度要求较高&#xff0c;但对可靠性要求不高的场景&#xff0c;例如游戏、音频、视频等实时通…

常用的python gpu加速方法

在使用 PyCharm进行机器学习的时候&#xff0c;我们常常需要自己创建一些函数&#xff0c;这个过程中可能会浪费一些时间&#xff0c;在这里&#xff0c;我们为大家整理了一些常用的 Python加速方法&#xff0c;希望能给大家带来帮助。 在 Python中&#xff0c;我们经常需要创建…

工程监测无线中继采集发送仪 指示灯功能说明及接口定义

工程监测NLM5无线中继采集发送仪 指示灯功能说明及接口定义 指示灯功能说明 标识 名称 状态 描述说明 备注说明 CHG 正在充电 常亮 正在充电 DON 充电完成 常亮 已充满 POW 电源指示 常亮 外部电源已连接 仅用于指示是否连接了外部电源 熄灭 无外部电源 SIG 空 RUN 运行状态 闪…