首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用HMAC SHA-256和Base64Encoder签名

用HMAC SHA-256和Base64Encoder签名
EN

Stack Overflow用户
提问于 2012-01-10 18:23:42
回答 1查看 3K关注 0票数 0

为了访问一个web服务,我尝试了很多创建签名的方法。

他们要求我用每个请求生成一个签名。

为了生成签名,我有一条消息是"abc“,另一条秘密密钥是"xyz”。根据他们,我的签名应该被处理为以下的红宝石代码

代码语言:javascript
运行
复制
require 'base64'

require 'openssl'

secret = "xyz"

request = "abc"

digest = OpenSSL::Digest::Digest.new('sha256')

signature = Base64.encode64(OpenSSL::HMAC.digest(digest, secret, request)).chomp

signature应该是9ZjsfVB3k5nPNLf5he+gfyYaxNWCIJ6J8YcRpxW5GG0=,但是我不使用9ZjsfVB3k5nPNLf5he+gfyYaxNWCIJ6J8YcRpxW5GG0=代码,如下所示:

代码语言:javascript
运行
复制
 SecretKey secretKey = null;    

 byte[] keyBytes = keyString.getBytes("UTF-8");     

 Mac mac = Mac.getInstance("HMACHSA256");

 secretKey = new SecretKeySpec(keyBytes,mac.getAlgorithm());

 mac.init(secretKey);   

 byte[] text = baseString.getBytes("UTF-8");

 //mac.update(digest.digest());

 byte[] encodedText = mac.doFinal(text);    

 return new String(Base64.encodeBase64(encodedText)).trim();

请帮帮我。

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8808416

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档