符号键HMAC SHA1使用Javascript [英] Sign Key HMAC SHA1 with Javascript

查看:386
本文介绍了符号键HMAC SHA1使用Javascript的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

出于某种原因,我不能够从JS私钥创建签名。从谷歌使用这个在线帮助:

For some reason I am not able to create a signature from a private key in JS. Using this online help from google:

https://m4b-url-signer.appspot.com/

网址:的https://google.maps.com/maps/api/geo$c$c/json?address=New+York&client=test

示例键(假冒的练习的目的)
关键字:QNade5DtdJKKZbidTsrIgONupc4 =

Example Key (fake for the purposes of the exercise) Key: QNade5DtdJKKZbidTsrIgONupc4=

(结果)签名:XDsiH5JAY7kJLgA1K2PWlhTdO1k =

(Result) Signature: XDsiH5JAY7kJLgA1K2PWlhTdO1k=

不过,我的JavaScript code:

However, my javascript code:

var keyString = 'QNade5DtdJKKZbidTsrIgONupc4=';
    console.log(keyString)

var urlString = encodeURIComponent('/maps/api/geocode/json?address=New+York&client=test');
console.log(urlString)

// We need to decode private key to binary
var decoded_key_words = CryptoJS.enc.Utf8.parse(keyString);
var decoded_key = CryptoJS.enc.Base64.stringify(decoded_key_words);

console.log(decoded_key);

var signature = CryptoJS.HmacSHA1(decoded_key,urlString);
console.log(signature);

//  Encode binary signature to base 64
var encoded_signature = CryptoJS.enc.Base64.stringify(signature);
console.log(encoded_signature)

给我一个签名:

bOenVNeXI6xI1xlSa77oqGKssyY =

bOenVNeXI6xI1xlSa77oqGKssyY=

我似乎无法找出我做错了什么。我是不是正确的base64解码

I can't seem to figure out what I'm doing wrong. Am I decoding base64 incorrectly?

推荐答案

有关记录,这工作:

<script src="sha.js"></script>

var url = '/maps/api/geocode/json?address=New+York&client=test';
var key = 'QNade5DtdJKKZbidTsrIgONupc4='

var hmacObj = new jsSHA(url, 'TEXT');
var hmacOutput = hmacObj.getHMAC(key,'B64','SHA-1','B64');

console.log(hmacOutput)

我给予:

XDsiH5JAY7kJLgA1K2PWlhTdO1k =

XDsiH5JAY7kJLgA1K2PWlhTdO1k=

这篇关于符号键HMAC SHA1使用Javascript的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆