0

我有用于为 REST API 调用创建签名的 ruby​​ 方法。

private static String sign_data(String str, String api_secret, bool cgi_escape)
{
String r = Base64.encode64(OpenSSL::HMAC.digest(OpenSSL::Digest::Digest.new('sha1'),   api_secret, str)).replace('\n','');
cgi_escape ?  CGI.escape(r) : r
return r
}

任何人都可以帮助我获得等效的顶点代码吗?我尝试编写以下顶点代码,但未能成功。

private static String sign_data(String str, String api_secret, bool cgi_escape) {
String r =EncodingUtil.base64Encode((OpenSSL::Digest::SHA1.new, api_secret, str)).replace('\n',''); 返回 r;
}

4

1 回答 1

1

固定:使用以下解决方案

private static String sign_data(String str, String api_secret)

{

String algorithmName = 'HmacSHA1';
Blob hmacData = Crypto.generateMac(algorithmName, Blob.valueOf(str),      Blob.valueOf(api_secret));
return EncodingUtil.base64Encode(hmacData);

}

于 2013-02-28T10:53:22.813 回答