Salesforce Apex-base编码与openssl

Salesforce Apex-base编码与openssl,salesforce,apex-code,Salesforce,Apex Code,我使用ruby方法为RESTAPI调用创建签名 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.esc

我使用ruby方法为RESTAPI调用创建签名

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
}
有人能帮我得到同等的apex代码吗?我尝试编写下面的apex代码,但没有成功

私有静态字符串符号\u数据(字符串str、字符串api\u secret、bool cgi\u转义) {
字符串r=EncodingUtil.base64Encode((OpenSSL::Digest::SHA1.new,api_secret,str)).replace('\n',''); 返回r;

}

修复:使用以下解决方案

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