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

做跨境电商有没推荐的网站中国十大网站开发公司

做跨境电商有没推荐的网站,中国十大网站开发公司,全网运营推广,国际新闻软件哪个好目录 1、apisix的hmac认证Authorization头信息 2、signature的lua生成源码 3、java生成签证的简单示例 4、postman调用如下 apisix的hmac-auth认证#xff0c;介绍可以看官方文档 hmac-auth | Apache APISIX -- Cloud-Native API Gateway 照着官方文档#xff0c;发现生…目录 1、apisix的hmac认证Authorization头信息 2、signature的lua生成源码 3、java生成签证的简单示例 4、postman调用如下 apisix的hmac-auth认证介绍可以看官方文档 hmac-auth | Apache APISIX® -- Cloud-Native API Gateway 照着官方文档发现生成的签证根本调不通所以研究了一下hmac-auth的生成源码下面记录一下apisix的hmac需要怎么传参 1、apisix的hmac认证Authorization头信息 1.1hmac认证Authorization内容 Signature signature{具体签名}, keyId{hmac的key}, algorithm{hmac的算法}, headers{需要生成签证的请求头} 生成结果如下 Signature signaturePpSL9rq26QtITXh33NhUpBJkNiskkkEDKKzFYqKKIC4, keyIda0f4cafbe86a43d5bcfdb7e97f32215b, algorithmhmac-sha256, headersdate 1.2参数介绍 algorithmhmac支持的算法。具体可以看源码或者文档只有几种下面都是用的默认的算法HmacSHA256 headers是说生成签名需要用的头信息header里面的顺序也影响签名具体签名生成见下文。下面介绍几个可能常用的header头。下面只是常用参数还有一些别的head参数。验证了一下不支持request-body这种不规范的 headersdate  request-target date: GMT格式日期。  一般是搭配签证过期窗口使用的 request-target是一个特殊的字段通常用于 HTTP 请求的签名生成。它表示请求的目标 URI即请求的路径和查询参数而不是请求头中的其他字段可以理解成具有含义的常量经常会用它判断逻辑 2、signature的lua生成源码 hmac-auth.lua文件在验证的时候加了一下core.log.warn打印日志获取一些中间结果 local function generate_signature(ctx, secret_key, params)     local uri ctx.var.request_uri     local request_method core.request.get_method() if uri then         uri /     end local signing_string_items {         params.keyId,     } if params.headers then         for _, h in ipairs(params.headers) do             local canonical_header core.request.header(ctx, h)             if not canonical_header then               if h request-target then                 local request_target request_method .. .. uri                 core.table.insert(signing_string_items, request_target)                 core.log.warn(canonical_header name:, core.json.delay_encode(h))                 core.log.warn(canonical_header value: ,                               core.json.delay_encode(request_target))               end             else               core.table.insert(signing_string_items,                                 h .. : .. canonical_header)               core.log.warn(canonical_header name1:, core.json.delay_encode(h))               core.log.warn(canonical_header value1: ,                             core.json.delay_encode(canonical_header))             end         end     end local signing_string core.table.concat(signing_string_items, \n) .. \n core.log.warn(signing_string签证:, signing_string)     return hmac_funcs[params.algorithm](secret_key, signing_string) end 可以看出如果请求头有request-target生成签证会用到uri和request_method否则是不会用到的 1如果头没有request-target例如headersrequest-line date request-body 如果是get请求那生成签证就只需要keyId\ndate: 具体GMT时间\n (2) 如果头有request-target例如headersrequest-line date request-body request-target 如果是get请求那生成签证就要keyId\ndate: 具体GMT时间\nrequest_method uri 3、java生成签证的简单示例 Slf4j public class HmacUtils {/**** 获取签证信息* return String 返回值message的生成规则和顺序都不是固定的是根据header变化的* Author: shisha* Date: 2024/12/25 10:22**/public static String getSignature(String key,String hmacSecret) throws Exception {String dateStr getCurrentGmt();//key和时间 a0f4cafbe86a43d5bcfdb7e97f32215b\ndate: Tue, 24 Dec 2024 12:27:55 GMT\n;// headersdateString message key \ndate: dateStr\n;//如果headersdate request-target//TODO message的生成规则和顺序都不是固定的是根据header变化的messageGET /dapi/v1.0/ssApi/getDataForGet?query%7B%22pageIndex%22%3A1%2C%22pageSize%22%3A10%2C %22apiTestToken%22%3A%2202024121716460709700000101001349%22%2C%22dz%22%3A%22%2Fdcpyo %2FPRODUCTScxfw_4090%22%2C%22list%22%3A%5B%7B%22bm%22%3A%22PRODUCT_NAME%22%2C%22jtz%22%3A %22RTX5060%22%7D%5D%2C%22apiId%22%3A%2202024112711241051600000101660374%22%7Dt1734425245421\n ;//获取签证return generateHmacSha256Base64(hmacSecret, message);}/**** Hmac生成签证的base64工具* param message* return String 返回值* Author: shisha* Date: 2024/12/25 9:49**/public static String generateHmacSha256Base64(String hmacSecret, String message) throws Exception {// 创建 HMAC-SHA256 实例Mac sha256_HMAC Mac.getInstance(HmacSHA256);SecretKeySpec secret_key new SecretKeySpec(hmacSecret.getBytes(UTF-8), HmacSHA256);sha256_HMAC.init(secret_key);// 计算 HMAC 值byte[] hmacBytes sha256_HMAC.doFinal(message.getBytes(UTF-8));// 进行 Base64 编码return Base64.getEncoder().encodeToString(hmacBytes);}public static String getCurrentGmt() {Date date new Date();// Wed, 25 Dec 2024 01:50:59 GMTString form E, dd MMM yyyy HH:mm:ss;Locale locale Locale.ENGLISH;SimpleDateFormat sdf new SimpleDateFormat(form, locale);sdf.setTimeZone(TimeZone.getTimeZone(GMT));String gmtTime sdf.format(date) GMT;// 输出GMT时间字符串log.info(gmtTime);return gmtTime;}public static void main(String[] args) throws Exception {String key 2e06116d05d6399c90c8a441942fb113;String hmacSecret 005B192C781AEB9F641BC71DC6C63A43245E7ABBD;String signature getSignature(key,hmacSecret);log.info(signature);//调用postman的请求参数示例,Authorization格式如下// Signature signaturePpSL9rq26QtITXh33NhUpBJkNiskkkEDKKzFYqKKIC4, keyIda0f4cafbe86a43d5bcfdb7e97f32215b, algorithmhmac-sha256, headersrequest-line date request-body} 4、postman调用如下
http://www.w-s-a.com/news/372788/

相关文章:

  • 做设计什么设计比较好的网站南充市住房和城乡建设局考试网站
  • 郑州做系统集成的公司网站龙岩
  • 厦门SEO_厦门网站建设网络营销课程视频
  • vs 2015 网站开发开网店在线咨询
  • 前端如何优化网站性能大学学校类网站设计
  • 中国铁路建设投资公司网站熊学军中国it外包公司排名前50
  • 房产网站的建设广州推广排名
  • 湟源县网站建设wordpress删除未分类
  • 营销型网站开发推广厦门百度seo公司
  • 遵义网站开发培训上海中高风险地区名单最新
  • 禹州市门户网站建设做网站可以申请个体户么
  • 大良营销网站建设效果彩票网站搭建 做网站
  • 做网站的公司为什么人少了在中国如何推广外贸平台
  • 盘锦网站制作工业电商网站怎么配色
  • 白云企业网站建设seo排名点击软件
  • wordpress跨站脚本攻击漏洞国外注册的域名国内能用吗
  • 西部数码网站管理助手2工信部资质查询网站
  • 公司网站哪个建的好吉林网站制作
  • 视频网站怎么引流wordpress私人玩物
  • 我的家乡湛江网站设计新钥匙网站建设
  • 辽宁网站推广爱前端wordpress5.0.3主题
  • python怎么做网站贵阳网站制作
  • 深圳网站的优化seo网络推广有哪些
  • 网站建设实习报告范文荆州市城市建设档案馆网站
  • 网站开发信息平台项目总结企业网站如何推广
  • 网站备案名称规定手机免费h5制作软件
  • 接网站建设单子的网站网页设计尺寸多大
  • 订制型网站费用做网站的问题
  • 淮阳住房和城乡建设网站桂林新闻桂林人论坛
  • 公司网站建设价格标准老版本网站开发工具