推荐关注
› Meteor
› JSLint - a JavaScript code quality tool
› jsFiddle
› D3.js
› WebStorm
推荐书目
› JavaScript 权威指南第 5 版
› Closure: The Definitive Guide
insomniowl

求助,有没有对 JavaScript 和 Java 都熟悉的朋友,请教下这段 Java 代码的 JavaScript 的实现方式

  •  
  •   insomniowl · Dec 21, 2017 · 5147 views
    This topic created in 3241 days ago, the information mentioned may be changed or developed.
    服务端用到了阿里云 API 网关,涉及到签名的计算,官方文档( https://help.aliyun.com/document_detail/29475.html )只看到了 Java 的实现方式:

    Mac hmacSha256 = Mac.getInstance("HmacSHA256");
    byte[] keyBytes = secret.getBytes("UTF-8");
    hmacSha256.init(new SecretKeySpec(keyBytes, 0, keyBytes.length, "HmacSHA256"));
    String sign = new String(Base64.encodeBase64(hmacSha256.doFinal(stringToSign.getBytes("UTF-8")),"UTF-8"));

    想请教下如何用 JavaScript 实现得到相同的计算结果
    Supplement 1  ·  Dec 22, 2017
    已解决

    const cryptojs = require('crypto-js')

    var wordarrayResult = cryptojs.HmacSHA256(stringToSign ,secret)
    var sign = cryptojs.enc.Base64.stringify(wordarrayResult)

    计算过程就是 HMAC 计算返回原始二进制数据后进行 Base64 编码
    8 replies  •  2017-12-22 00:09:23 +08:00
    wxsm
    wxsm
    Dec 21, 2017 via iPhone
    1
    搞一个 java 微服务不就完了,还能解藕,一举两得。
    jwk345
    jwk345
    Dec 21, 2017 via iPhone
    2
    翻到页面底部:在 API 网关控制台,调用 API — SDK 下载 处还有更多语种的调用 demo。
    insomniowl
    insomniowl
    OP
    Dec 21, 2017
    3
    @jamesxu 这个之前也看到了,有 Node 的 SDK ( https://github.com/aliyun/api-gateway-nodejs-sdk ),但不知道前端 js 如何来实现。
    viko16
    viko16
    Dec 21, 2017 via Android
    4
    涉及签名的就不要在浏览器端做了
    insomniowl
    insomniowl
    OP
    Dec 21, 2017
    5
    @viko16 #4 小程序呢
    wdlth
    wdlth
    Dec 21, 2017
    6
    用 crypto-js 不行么?
    insomniowl
    insomniowl
    OP
    Dec 21, 2017
    7
    @wdlth #6
    base64.encode(cryptojs.HmacSHA256(stringToSign, secret))
    得到的结果跟复制 Java 代码跑出来的结果并不一样,不知道问题出在哪里了..
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2360 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 15:17 · PVG 23:17 · LAX 07:17 · JFK 10:17
    ♥ Do have faith in what you're doing.