deep seek生成的阿里云v4签名

2025-4-11 09:19 14 0
简介
.版本 2.支持库 spec.支持库 eAPI.子程序 阿里云V4签名, 文本型.参数 AccessKeyId, 文本型.参数 AccessKeySecret, 文本型.参数 RegionId, 文本型.参数 ServiceName, 文本型.局部变量 UTC时间, 文本型.局部变量 日期, ...
.版本 2
.支持库 spec
.支持库 eAPI

.子程序 阿里云V4签名, 文本型
.参数 AccessKeyId, 文本型
.参数 AccessKeySecret, 文本型
.参数 RegionId, 文本型
.参数 ServiceName, 文本型

.局部变量 UTC时间, 文本型
.局部变量 日期, 文本型
.局部变量 规范请求, 文本型
.局部变量 待签字符串, 文本型
.局部变量 签名密钥, 字节集
.局部变量 签名, 字节集
.局部变量 最终签名, 文本型

' 1. 获取时间戳
UTC时间 = 时间_格式化 (取现行时间 (), "yyyyMMddTHHmmssZ", 真, 真)
日期 = 取文本左边 (UTC时间, 8)

' 2. 构造规范请求
规范请求 = "GET" + 字符(10)  ' HTTP Method
规范请求 = 规范请求 + "/" + 字符(10) ' CanonicalURI
规范请求 = 规范请求 + "Action=DescribeRegions&Version=2014-05-26" + 字符(10) ' CanonicalQueryString
规范请求 = 规范请求 + "content-type:application/x-www-form-urlencoded; charset=utf-8" + 字符(10) ' CanonicalHeaders
规范请求 = 规范请求 + 字符(10) ' SignedHeaders
规范请求 = 规范请求 + "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" ' HashedPayload

' 3. 生成待签字符串
待签字符串 = "HMAC-SHA256" + 字符(10)
待签字符串 = 待签字符串 + UTC时间 + 字符(10)
待签字符串 = 待签字符串 + 日期 + "/" + RegionId + "/" + ServiceName + "/aliyun_v4_request" + 字符(10)
待签字符串 = 待签字符串 = 待签字符串 + 校验_取sha256哈希值 (到字节集 (规范请求))

' 4. 计算签名密钥
签名密钥 = 校验_hmac_sha256 ("aliyun_v4" + AccessKeySecret, 日期)
签名密钥 = 校验_hmac_sha256 (签名密钥, RegionId)
签名密钥 = 校验_hmac_sha256 (签名密钥, ServiceName)
签名密钥 = 校验_hmac_sha256 (签名密钥, "aliyun_v4_request")

' 5. 计算签名
签名 = 校验_hmac_sha256 (签名密钥, 待签字符串)
最终签名 = 字节集_十六进制 (签名, 假)

' 6. 构造Authorization头
返回 "HMAC-SHA256 Credential=" + AccessKeyId + "/" + 日期 + "/" + RegionId + "/" + ServiceName + "/aliyun_v4_request,SignedHeaders=content-type;host;x-acs-action;x-acs-content-sha256;x-acs-date;x-acs-version,Signature=" + 最终签名

.子程序 校验_hmac_sha256, 字节集
.参数 密钥, 字节集
.参数 数据, 文本型
返回 HMAC_SHA256 (密钥, 到字节集 (数据))  ' 需要自行实现或调用外部加密库

.子程序 校验_取sha256哈希值, 文本型
.参数 数据, 字节集
返回 字节集_十六进制 (SHA256 (数据), 假)  ' 需要自行实现或调用外部加密库

鲜花

握手

雷人

路过

鸡蛋

最新文章

关注我们:觅风论坛与你快乐分享

收藏本站

用心服务做个非盈利公益编程网站

www.eyyba.com

服务人:觅风论坛

Email:eyyba@foxmail.com

Powered by WWW.EYYBA.COM X3.4© 2001-2023 Inc.   版权所有   

觅风论坛  疆ICP备15020893号-1