推荐关注
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 · 4715 views
    This topic created in 3067 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
        1
    wxsm  
       Dec 21, 2017 via iPhone
    搞一个 java 微服务不就完了,还能解藕,一举两得。
    jwk345
        2
    jwk345  
       Dec 21, 2017 via iPhone
    翻到页面底部:在 API 网关控制台,调用 API — SDK 下载 处还有更多语种的调用 demo。
    insomniowl
        3
    insomniowl  
    OP
       Dec 21, 2017
    @jamesxu 这个之前也看到了,有 Node 的 SDK ( https://github.com/aliyun/api-gateway-nodejs-sdk ),但不知道前端 js 如何来实现。
    viko16
        4
    viko16  
       Dec 21, 2017 via Android
    涉及签名的就不要在浏览器端做了
    insomniowl
        5
    insomniowl  
    OP
       Dec 21, 2017
    @viko16 #4 小程序呢
    wdlth
        6
    wdlth  
       Dec 21, 2017
    用 crypto-js 不行么?
    insomniowl
        7
    insomniowl  
    OP
       Dec 21, 2017
    @wdlth #6
    base64.encode(cryptojs.HmacSHA256(stringToSign, secret))
    得到的结果跟复制 Java 代码跑出来的结果并不一样,不知道问题出在哪里了..
    openmynet
        8
    openmynet  
       Dec 22, 2017
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3040 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 55ms · UTC 13:14 · PVG 21:14 · LAX 06:14 · JFK 09:14
    ♥ Do have faith in what you're doing.