[英]Computing an HMAC-SHA signature
HMAC是一種標准功能,可以在大多數平台的加密庫中找到。 亞馬遜在您鏈接到的文檔頁面上顯示了幾個示例。
對於Java,您可以在javax.crypto.Mac中找到它
對於.Net,請查看System.Security.Cryptography
對於KRL ,我還沒有找到任何內置的庫存解決方案。 由於似乎可以嵌入javascript, jsSHA實現可能很有用。 數學庫中有一個sha1函數,根據RFC2104實現HMAC似乎並不困難。
編輯:以下應該工作:
pre {
message = "Four score and seven years ago";
key = "Abe Lincoln";
signature = math:hmac_sha256_base64(message, key);
}
notify("Signature is", signature);
函數是math:hmac_sha256_base64(<datastring>,<keystring>)
要使用嵌入式換行符簽署字符串(AWS我正在與您交談!)您必須執行以下操作(基於AWS S3示例)
pre {
raw_string = uri:unescape("GET%0A%0A%0AWed, 28 Mar 2007 01:29:59 +0000%0A/");
sample_key = "uV3F3YluFJax1cknvbcGwgjvx4QpvB+leU8dUj2o";
signature = math:hmac_sha1_base64(raw_string, sample_key);
expected = "Db+gepJSUbZKwpx1FR0DLtEYoZA=";
passfail = (signature eq expected) => "pass" | "fail";
}
uri:decode()
函數返回一個帶有正確換行符的字符串,其中\\n\\n\\n
不會。 您可能必須在簽名中添加尾隨'='。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.