使用Javascript对密钥HMAC SHA1进行签名

使用Javascript对密钥HMAC SHA1进行签名,javascript,google-maps-api-3,utf-8,base64,cryptojs,Javascript,Google Maps Api 3,Utf 8,Base64,Cryptojs,由于某些原因,我无法从JS中的私钥创建签名。使用谷歌提供的在线帮助: 网址: 示例键(出于练习目的为假) 关键字:QNade5DtdJKKZbidTsrIgONupc4= (结果)签名:XDsiH5JAY7kJLgA1K2PWlhTdO1k= 但是,我的javascript代码: var keyString = 'QNade5DtdJKKZbidTsrIgONupc4='; console.log(keyString) var urlString = encodeURICompone

由于某些原因,我无法从JS中的私钥创建签名。使用谷歌提供的在线帮助:

网址:

示例键(出于练习目的为假) 关键字:QNade5DtdJKKZbidTsrIgONupc4=

(结果)签名:XDsiH5JAY7kJLgA1K2PWlhTdO1k=

但是,我的javascript代码:

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)
给我一个签名:

Boenvenexi6XI1XLSA77OQGKSYY=


我似乎不知道我做错了什么。我对base64的解码有误吗?

记录在案,这起到了作用:

<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)

var url='/maps/api/geocode/json?address=New+York&client=test';
var key='QNade5DtdJKKZbidTsrIgONupc4='
var hmacObj=新jsSHA(url,“文本”);
var hmacOutput=hmacObj.getHMAC(键,'B64','SHA-1','B64');
console.log(hmacOutput)
给我:


XDsiH5JAY7kJLgA1K2PWlhTdO1k=

我想指出,这是机密信息,不应该发布在StackOverflow之类的公共论坛上。你应该联系谷歌寻求工作支持。这里有一个链接:@KayAnn Hi-Kay,非常感谢您的回复,但为什么这是机密?我帖子中的数字都是虚构的(这不是真正的密钥),谷歌在线上有大量关于python签名密钥的文档,而不是js。例如:我只想知道如何在JS中从base64解码为二进制,因为我认为我错过了这一步。你应该在你的问题中提到这一点,这是虚构的。此外,密钥、签名和客户端机密通常是敏感信息,因为它们是特定于应用程序的,可能会造成安全障碍。好吧,我仍然鼓励你在支持论坛上问这个问题,你很可能会得到准确的解释和/或解决方案。