set_hmac_sha1

指令 `set_hmac_sha1` 使用指定的密钥对给定输入计算 HMAC SHA1 哈希。

语法set_hmac_sha1 $output_variable $key $input_string;
默认值none
上下文http, server, location, if in server, if in location
参数3

说明

来自 NGINX Set-Misc 模块的 set_hmac_sha1 指令允许用户使用 SHA1 哈希算法生成 HMAC(基于散列的消息认证码)。这对于为需要完整性校验的 API 请求或消息创建安全令牌或签名特别有用。该指令需要三个参数:用于存放输出的变量、用于 HMAC 的密钥,以及要被哈希的输入字符串。

在执行时,set_hmac_sha1 指令会取提供的输入字符串并使用秘密密钥计算其 HMAC。生成的哈希随后存储在指定的输出变量中。此操作在需要验证数据真实性或在传输过程中对有效负载进行签名以防止篡改的场景中非常有用。需要注意的是,输出将根据所用密钥和输入而变化,这强调了保持密钥秘密和安全的重要性。

该指令可以在多个上下文中使用,包括 httpserverlocation 和这些上下文中的 if 块。此多样性提供了灵活性,可根据具体应用需求在整个 NGINX 配置中应用 HMAC。

配置示例

location /secure-endpoint {
    set $secret_key 'yoursecret';
    set_hmac_sha1 $auth_token $secret_key $request_body;
}

确保所用密钥具有足够的随机性并保密,以防止未经授权的数据访问。

输入必须是字符串;在将其传递给指令之前,请确保输入的数据类型适当。

在高流量环境中使用此功能时要小心,因为 HMAC 计算可能会引入延迟。

← 返回所有指令