当前位置: 首页 > news >正文

LabVIEW网络服务安全2

LabVIEW网络服务安全2

在客户端应用程序中创建签名

对请求进行签名要求您具有能够从客户端的编程语言调用的MD5摘要算法以及SHA256加密摘要算法的实现。这两种算法通常都可用于大多数平台。还需要:

1. 要使用的HTTP方法的字符串(“GET”、“POST”、“PUT”、“DELETE”)

2. 目标IP地址(或DNS主机名)

3. 在该地址请求的网址

4. HTTP内容正文(可能出现在“PUT”或“POST”请求中)

5. 当前时((in UTCtime using format ‘YYYY-MM-DD HH:MM:SSZ’)

6. 安全密钥的两个元素(访问ID和密钥ID)

例如,给定以下HTTP请求:

Method = GET

Time = 2008-07-23 22:41:02Z

URL = /quotes/NATI

1. 客户端创建许多单独的字符串元素,这些元素将连接在一起。这些元素是:

要使用的HTTP方法的字符串(“GET”、“POST”、“PUT”、“DELETE”)

“GET”

2. URL请求

'/quotes/NATI'

3. 当前时间(以UTC时间使用格式“YYYY-MM-DDHH:MM:SSZ”)

'2008-07-2322:41:02Z'

4. The Access ID portion of the Security Key

1. 'PqVr/ifkAQh+lVrdPIykXlFvg12GhhQFR8H9cUhphgg=' the default Access ID的机密The clientcreates a number of individual string elements that will get concatenatedtogether. These elements are:

The string for the HTTP method to be used (‘GET’, ‘POST’, ‘PUT’, ‘DELETE’)

‘GET’

2. The URL requested

'/quotes/NATI'

3. The current time of day (in UTC time using format‘YYYY-MM-DD HH:MM:SSZ’)

‘2008-07-23 22:41:02Z’

4. The Access ID portion of the Security Key

'PqVr/ifkAQh+lVrdPIykXlFvg12GhhQFR8H9cUhphgg=' ß the defaultAccess ID

5. The hex-encoded MD5 digest of the Secret ID portion ofthe Security Key

Given: 'pTe9HRlQuMfJxAG6QCGq7UvoUpJzAzWGKy5SbZ+roSU=' ß the defaultSecret ID

‘4ce83e7d608f70375fd1cda0a6f3ae66’ ß the hex-encodedMD5 digest of the Secret ID string

6. The hex-encoded MD5 digest of the content-body if thereis a content-body for the request (Not applicable for this request becausethere is no content-body for a GET request).

Appendedtogether, these give us a string of:

‘GET/quotes/NATI2008-07-23

22:41:02ZPqVr/ifkAQh+lVrdPIykXlFvg12GhhQFR8H9cUhphgg=4ce83e7d608f70375fd1cda0a6f3ae66’

为了形成最终签名,我们一起附加:

1. ‘NIWS’ (for requests with no content-body, or forrequests in which we do not want to include the content-body as part of thesignature) or ‘NIWS2’ (for requests with a content body).

2. A blank space (0x20).

3. The Access ID

4. A colon (0x3a)

5. The Base64-encoded SHA256 digest, as calculated above.

Thisgives us the signature string:

‘PqVr/ifkAQh+lVrdPIykXlFvg12GhhQFR8H9cUhphgg=:xTDFuYyLJpwOLL2bKKlAco59W/0N53BnVwOGNZ0fX

l0=’

Thissignature string is added to the HTTP request as a header named:“x-ni-authentication”.

Thetimestamp string used to create this signature is also attached to thesignature as a header named “x-ni-date”.

So acomplete signed HTTP request (with ‘\n’ shown to represent the requiredcarriage returns) would look like:

GET/quotes/NATI HTTP/1.1 ‘\n’

x-ni-date:2008-07-23 22:41:02Z ‘\n’

x-ni-authentication:NIWSPqVr/ifkAQh+lVrdPIykXlFvg12GhhQFR8H9cUhphgg=:xTDFuYyLJpwOLL2bKKlAco59W/0N53BnVwOGNZ0fXl0=‘\n’

Thissignature, embedded as HTTP headers, is only for this request. It could onlyhave been

createdby someone who knew the algorithm and both parts of the Security Key. Plus, thesignature includes an encoded version of the timestamp, so the signature has abuilt-in expiration time, as configured on the LabVIEW target. Outside of thattime window, this signature is automatically invalid, preventing later replaysof the request.

Note thatthe timestamp calculations require that the clock be properly set on both theclient and the LabVIEW target. Because the timestamp string is written in UTCtime, the client and servers can each be in different time zones, as long astheir local clocks and time zones are correctly set.

需要说明的是,上述的例程和文档,都是可以下载的,双击即可打开,其中压缩文件是可以采用粘贴复制的方式,拷贝到硬盘上。这不是图片,各位小伙伴看到后尝试一下,这个问题就不用加微信咨询了。有关LabVIEW编程、LabVIEW开发等相关项目,可联系们。附件中的资料这里无法上传,可去公司网站搜索下载。

http://www.lryc.cn/news/23091.html

相关文章:

  • java动态代理
  • Python 简单可变、复杂可变、简单不可变、复杂不可变类型的copy、deepcopy的行为
  • QML Item
  • 使用xca工具生成自签证书
  • Unity IOS 通过命令行导出IPA
  • 「架构」全链路异步模式
  • CleanMyMac4.20最新版新增功能及电脑清理垃圾使用教程
  • Vue2的tsx开发入门完全指南
  • GLSL shader学习系列1-Hello World
  • Codeforces Round #851 (Div. 2)(A~D)
  • 内存保护_1:Tricore芯片MPU模块介绍
  • Vue3 -- PDF展示、添加签名(带笔锋)、导出
  • 行测-判断推理-图形推理-样式规律-属性规律-曲直性
  • idea集成Alibaba Cloud Toolkit插件
  • Win11 文件夹打开慢或卡顿解决方案
  • 【PostgreSQL的idle in transaction连接状态】
  • cityengine自定义纹理库资源
  • taobao.top.secret.bill.detail( 服务商的商家解密账单详情查询 )
  • 2023软件测试金三银四常见的软件测试面试题-【抓包和网络协议篇】
  • vue脚手架多页自动化生成实践
  • 【SQL语句优化】
  • 阿里P8:做测试10年我的一些经验分享,希望你们少走弯路
  • 栈在括号匹配中的应用(栈/链栈 纯C实现)
  • C语言Switch语句用法
  • Curl编码请求参数,API接口请求示例参数
  • 【C/C++】类型限定符extern、const、Volatile、register
  • day54【代码随想录】二刷数组
  • 哪个品牌蓝牙耳机性价比高?性价比高的平价蓝牙耳机推荐
  • 揭秘关于TFRcord的五脏六腑
  • 【Shell学习笔记】3.Shell 传递参数及数组