为了访问一个web服务,我尝试了很多创建签名的方法。
他们要求我用每个请求生成一个签名。
为了生成签名,我有一条消息是"abc“,另一条秘密密钥是"xyz”。根据他们,我的签名应该被处理为以下的红宝石代码
require 'base64'
require 'openssl'
secret = "xyz"
request = "abc"
digest = OpenSSL::Digest::Digest.new('sha256')
signature = Base64.encode64(OpenSSL::HMAC.digest(digest, secret, request)).chompsignature应该是9ZjsfVB3k5nPNLf5he+gfyYaxNWCIJ6J8YcRpxW5GG0=,但是我不使用9ZjsfVB3k5nPNLf5he+gfyYaxNWCIJ6J8YcRpxW5GG0=代码,如下所示:
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();请帮帮我。
https://stackoverflow.com/questions/8808416
复制相似问题