JavaScript/uni-app对接海康ISC openapi

news2025/1/13 15:52:15

JavaScript/uni-app对接海康ISC openapi

        • JavaScript实现HMAC SHA256
        • 下载安装
        • 使用crypto-js
        • 使用签名生成工具
        • 参考

JavaScript实现HMAC SHA256

Run the code online with this jsfiddle. Dependent upon an open source js library calledhttp://code.google.com/p/crypto-js/.

<script src="http://crypto-js.googlecode.com/svn/tags/3.0.2/build/rollups/hmac-sha256.js"></script>
<script src="http://crypto-js.googlecode.com/svn/tags/3.0.2/build/components/enc-base64-min.js"></script>

<script>
  var hash = CryptoJS.HmacSHA256("Message", "secret");
  var hashInBase64 = CryptoJS.enc.Base64.stringify(hash);
  document.write(hashInBase64);
</script>

下载安装

JavaScript实现HMAC SHA256算法实现基于crypto-js
安装安装crypto-js

npm install crypto-js

引入crypto-js
支持ES6导入、Modular

import CryptoJS from "crypto-js";

或者

const CryptoJS = require("crypto-js");

安装完成,在uni-app项目中出现crypto-js文件目录
在这里插入图片描述

使用crypto-js

可以创建文件signature.js,生成一个签名然后暴露出去
const CryptoJS = require(“crypto-js”);

function sign(key, value){
	return (CryptoJS.enc.Base64.stringify(CryptoJS.HmacSHA256(value, key)))
}

const appKey = '22649972'//AK(Access Key ID):访问密钥ID。
const  appSecret = 'cHj40YDRoSdgBAuemTb2'//SK(Secret Access Key):与访问密钥ID结合使用的密钥,对请求进行加密签名
let url = '/artemis/api/resource/v1/org/advance/orgList'//接口地址
let sign_str = `POST\n*/*\napplication/json\nx-ca-key:${appKey}\n${url}`//签名拼接字符串

let signature = sign(appSecret,sign_str)//生成的签名

console.log(sign_str,signature)

export default signature

也可以在封装http请求的时候,直接动态生成一个签名,加入到请求头中

······

const appKey = '22649972';
const appSecret = 'cHj40YDRoSdgBAuemTb2';

function sign(key, value){
	return (CryptoJS.enc.Base64.stringify(CryptoJS.HmacSHA256(value, key)))
}

// 获取请求头
function getHeaders(url) {
	let sign_str = `POST\n*/*\napplication/json\nx-ca-key:${appKey}\n${url}`
	let signature = sign(appSecret,sign_str)
	let header = {
		'Accept':'*/*',
		'Content-Type':'application/json',
		'x-ca-key':appKey,
		'x-ca-signature':signature,
		'x-ca-signature-headers':'x-ca-key'
	}
	return header
}

······

使用签名生成工具

下载海康开放平台的签名生成工具,阅读开发指南,获得签名,对比一下我们自己用js方法生成的签名,检查js方法是否正确。
在这里插入图片描述
双击签名生成工具程序直接运行
在这里插入图片描述
修改appKey,appSecret,接口地址,点生成签名按钮,得到我们需要的签名。
在这里插入图片描述

参考

  1. python对接海康ISC openapi:https://www.jianshu.com/p/ed362150ec1f
  2. 海康开放平台:海康开放平台文档-综合安防管理平台(iSecure Center)
  3. 海康开放平台相关工具:下载
  4. 各种语言HMAC SHA256实现:https://www.cnblogs.com/love-snow/articles/8241314.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/24483.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如何将驱动编译为kernel 模块

前言&#xff1a; 本文章目标平台是PC Linux,不包含其他平台。 执行下面的步骤之前&#xff0c;请先编译kernel通过。 linux KO编译 将驱动程序源码集成到Linux内核中&#xff1a; 将驱动源码文件放到drivers/net/wireless并命名 自己简单创建的几个没有任何关联的源文件&…

力扣(LeetCode)30. 串联所有单词的子串(C++)

滑动窗口哈希表 哈希表 tottottot 存 wordswordswords 所有单词的出现次数。 维护滑动窗口&#xff0c;窗口长度 mwm\times wmw &#xff0c; mmm 是单词数量 www是单词长度 &#xff0c; 窗口长度对应可行解的长度。哈希表 wdwdwd 维护滑动窗口内每个单词的出现次数。 维护…

jstack问题定位分析

目录 1、jstack是什么 2、jstack的使用 1、jstack是什么 jstack是java虚拟机自带的一种堆栈跟踪工具。jstack用来打印出给定的java进程ID或者core file或者远程调试服务的java堆栈信息。 主要是用于生成java虚拟机当前时刻的线程快照&#xff0c;线程快照是当前java虚拟机…

记录运行项目的一些报错

一、git pull 报错 There is no tracking information for the current branch. Please specify whic... There is no tracking information for the current branch.Please specify which branch you want to merge with.See git-pull(1) for detailsgit pull <remote>…

身份安全的零信任方法

一、什么是零信任&#xff1f; 零信任是一组不断发展的网络安全范例术语&#xff0c;它将组织的防御措施从静态的、基于网络的边界转移到关注用户、资产和资源。这是一种安全心态&#xff0c;在明确验证之前&#xff0c;每个传入连接都被视为潜在的恶意请求。这个概念是由世界…

【特征选择】基于二元多邻域人工蜂群 (BMNABC) 特征选择问题(Matlab代码实现)

&#x1f468;‍&#x1f393;个人主页&#xff1a;研学社的博客 &#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜…

1.EdgeX实战 Ubuntu18.04搭建运行环境

文章目录前言:1、搭建Ubuntu18.04服务器平台2、安装docker和docker-compose3、运行EdgeX4、使用浏览器访问EdgeX前言: 想着把之前arduino和树莓派搭建的物联网平台迁移到EdgeX上来&#xff0c;原因有二&#xff1a; 不想去造轮子&#xff0c;自己从零开始写一个物联网的框架&…

影响 SEO 的排名优化的因素

我们在做网站SEO运营的时候&#xff0c;经常会遇到没有排名的情况。即使我们每天保持原创内容的更新和发布&#xff0c;也没有用。这时候就要马上检查网站存在哪些问题&#xff0c;及时解决&#xff0c;让我们的日常努力尽快盈利。以下因素按米贸搜排序&#xff0c;影响SEO排名…

凡亿教育嘉立创宠粉福利,9.9元秒杀PCB多层板设计实战特训班

层林浸染&#xff0c;秋意渐浓 随着双11活动的落幕 意味着工程师最忙碌的时候即将结束 然而在这多事之秋&#xff0c;还是项目高峰期 想必很多工程师都很少过好双11吧 这可不行&#xff01;&#xff01;&#xff01; 别人家有的&#xff0c;我们家的工程师都要有&#xff01;为…

pytest学习和使用10-Pytest中的测试用例如何跳过执行?

10-Pytest中的测试用例如何跳过执行&#xff1f;1 引入2 Unittest中的用例跳过3 pytest.mark.skip4 pytest.skip()5 pytest.mark.skipif()6 跳过标记7 pytest.importorskip1 引入 有时候我们需要对某些指定的用例进行跳过&#xff0c;或者用例执行中进行跳过&#xff0c;在Uni…

高项 成本管理论文

4个过程 1&#xff0c;规划成本&#xff1a;为规划、管理、花费和控制项口成本而制定政策、程序和文档的过程。 2&#xff0c;估算成本&#xff1a;对完成项目活动所需资金进行近似估算的过程。 3&#xff0c;制定预算&#xff1a;汇总所有单个活动或工作包的估算成本&…

【面试题】JavaScript面试题详细总结(一)

js基础部分 01 值类型与引用类型 1.1 问法 js判断数据类型&#xff1f;js值类型与引用类型有哪些&#xff1f;值类型与引用类型的区别&#xff1f; 1.2 介绍 JavaScript存储数据两个区域&#xff1a;栈和堆 栈&#xff1a;通常空间是固定的&#xff08;占据空间小、大小固定&…

MySQL基础|数据库存储时间段,数字从指定值递增AUTO_INCREMENT【详细版,建议收藏】

今天&#xff0c;在写SQL语句存储时间时遇到了一些问题&#xff0c;最后成功解决了 mysql基础一、时间字段的格式限制&#xff08;一&#xff09;精确到秒的表达1、错误的表达2、解决方式如下3、查看创建的表&#xff08;二&#xff09;存储一个时间段1、错误的表达语句2、解决…

一个优秀的程序员应该养成哪些好的习惯?

文章目录一、写代码前先想好思路&#xff0c;先规划框架&#xff0c;再到局部实现二、注重代码风格三、注重代码执行效率四、掌握一些编码原则五、解决问题时&#xff0c;对于原理性的问题&#xff0c;不要面向搜索引擎编程。六、注重基础知识的学习&#xff0c;不忙碌跟风新技…

分享美容美发会员管理系统功能的特点_分享美容美发会员管理系统的制作

人们越来越关心美发&#xff0c;美发行业发展迅速&#xff0c;小程序可以连接在线场景&#xff0c;许多美发院也开发了会员卡管理系统。那么一个实用的美发会员管理系统怎么制作呢&#xff1f;它有什么功能&#xff1f;我们一起来看看~&#xff08;干货满满&#xff0c;耐心看完…

艾美捷Immunochemistry FAM FLICA Poly Caspase检测方案

Caspases在细胞凋亡和炎症中发挥重要作用。ICT的FLICA检测试剂盒被研究人员用于通过培养的细胞和组织中的胱天蛋白酶活性来定量凋亡。FAM FLICA Poly Caspase探针允许研究人员评估胱天蛋白酶的激活。 用艾美捷Immunochemistry FAM-FLICA Poly caspase检测试剂盒检测活性半胱天冬…

2022年信息学部物联网工程学院学生科协机器学习科普

什么是机器学习 机器学习是一门多领域交叉学科&#xff0c;涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为&#xff0c;以获取新的知识或技能&#xff0c;重新组织已有的知识结构使之不断改善自身的性能。 它是人…

【安全学习】记一次内网环境渗透

注意&#xff1a; 本文仅用于技术讨论与研究&#xff0c;对于所有笔记中复现的这些终端或者服务器&#xff0c;都是自行搭建的环境进行渗透的。我将使用Kali Linux作为此次学习的攻击者机器。这里使用的技术仅用于学习目的&#xff0c;如果列出的技术用于其他任何目标&#xff…

讲讲 Redis 缓存更新一致性,看了都说好!

当执行写操作后&#xff0c;需要保证从缓存读取到的数据与数据库中持久化的数据是一致的&#xff0c;因此需要对缓存进行更新。 因为涉及到数据库和缓存两步操作&#xff0c;难以保证更新的原子性。 在设计更新策略时&#xff0c;我们需要考虑多个方面的问题: 对系统吞吐量的影…

那些测试行业的细分岗位,你知道多少?薪资又如何?

软件测试是个需求多&#xff0c;就业机会大的职业。目前&#xff0c;我国具备软件测试能力的人员数量和市场需求相差巨大&#xff0c;巨大的市场空缺&#xff0c;使软件测试工程师从初级到高级&#xff0c;只需要 1 年甚至更短的时间来完成。所以作为一名软件测试工程师&#x…