求帮助!~ 在使用阿里云的oss 在认证时signature该怎么用nodejs生成?
发布于 7 年前 作者 laoshe 9294 次浏览 最后一次编辑是 3 年前
Signature = base64(hmac-sha1(VERB + "\n"  
     + CONTENT-MD5 + "\n"  
     + CONTENT-TYPE + "\n"  
     + DATE + "\n"  
     + CanonicalizedOSSHeaders 
     + CanonicalizedResource)) 

 CONTENT-MD5表示请求内容数据的MD5值  CONTENT-TYPE表示请求内容的类型  DATE表示此次操作的时间,且必须为HTTP1.1中支持的GMT格式  CanonicalizedOSSHeaders表示 http中的object meta组合  CanonicalizedResource 表示用户想要访问的OSS资源

这是它的文档

4 回复

这个是api里的方法 我用nodejs该怎么做呢

1: 这个是api里的方法  我用nodejs该怎么做呢

看了snoopy文章解决了 文章地址enter link description here

假设应用密钥为“appSecret”,签名参数列表“foo=1,bar=2,baz=3”,拼接排序后为“bar=2&baz=3&foo=1”,那么,sign的值为BASE64(HMAC-SHA1(“bar=2&baz=3&foo=1”,“appSecret”))。—nodejs里面怎么实现HMAC-SHA1啊?var sign=crypto.createHmac(‘sha1’, app_secret).update(args).digest(“base64”);用这样也不行呢,不知道你是怎么解决的?求回复

解决了,crypto.createHmac(‘sha1’, app_secret).update(args).digest().toString(‘base64’); 这样的加密就是hmac-sha1的。之前是因为要加密的参数忘记排序的了。

回到顶部