签名应用及示例(V2版本) 认证鉴权 请求的认证鉴权通常是通过AK/SK对请求进行签名,在请求时将签名信息添加到消息头,从而通过身份认证,加密调用请求。 AK(Access Key ID):访问密钥ID。与私有访问密钥关联的唯一标识符;访问密钥ID和私有访问密钥一起使用,对请求进行加密签名。 SK(Secret Access Key):私有访问密钥。与访问密钥ID结合使用,对请求进行加密签名,可标识发送方,并防止请求被修改。 使用AK/SK认证时,您可以基于签名算法使用AK/SK对请求进行签名。 签名生成规则 signature形式 AWS {accesskey}:{hashofsecretandresource} accesskey:填入真实的访问密钥ID; hashofsecretandresource:通常是由请求uri、method、签名生成时间等和对应的secret key组合而成的字符串经hash(SHA1)再base64之后的结果; 注意:在 {accesskey} 和 {hashofsecretandresource} 之间有一个冒号【:】。 签名生成步骤 生成签名通常需要以下这些步骤: 1. 获取请求方法http Method,如 PUT; 2. 获得GMT格式的签名生成时间DateValue,如 Mon, 06 May 2024 08:51:53 +0000; 3. 获取请求完整uri,如 /testbucket/testobj; 4. 将以上信息按指定格式拼接生成最终参与签名的完整字符串stringToSign${httpMethod}nnn${DateValue}n${uri},如 PUTnnnMon, 06 May 2024 08:51:53 +0000n/testbucket/testobj; 5. 将sk作为秘钥使用HmacSHA1对上述stringToSign进行hash; 6. 对上述hash值进行base64编码得到hashofsecretandresource值,如 w/dZLIS06uPsWX3vIRI+cruX0VM; 7. 按AWS {accesskey}:{hashofsecretandresource}进行拼接得到最终signature鉴权头
来自: