> ## Documentation Index
> Fetch the complete documentation index at: https://docs.projectreal.gg/llms.txt
> Use this file to discover all available pages before exploring further.

# crypt.hmac

> Raw Lua string key를 사용해 Lua string 바이트에 crypto library HMAC을 계산하고 Base64 digest를 반환합니다.

<div className="real-function-page">
  ```lua theme={null}
  crypt.hmac(key: string, data: string, algorithm?: "sha256" | "sha1" | "sha224" | "sha384" | "sha512" | "md5"): string
  ```

  ## 인수

  <ParamField path={"key"} type={"string"} required>
    HMAC key로 사용되는 raw Lua string 바이트입니다. key는 Base64-decode되지 않습니다.
  </ParamField>

  <ParamField path={"data"} type={"string"} required>
    HMAC calculation에 전달되는 Lua string 바이트입니다.
  </ParamField>

  <ParamField path={"algorithm"} type={"\"sha256\" | \"sha1\" | \"sha224\" | \"sha384\" | \"sha512\" | \"md5\""}>
    Case-sensitive HMAC algorithm 이름입니다. 기본값은 sha256입니다.
  </ParamField>

  ## 반환값

  <ResponseField name={"digest"} type={"string"}>
    line breaks가 없는 Base64-encoded HMAC output입니다.
  </ResponseField>

  ## 예제

  raw Lua string key와 data에서 Base64 HMAC output을 계산합니다.

  ```lua theme={null}
  local key = "shared secret"
  local data = "payload"
  local digest = crypt.hmac(key, data, "sha256")

  print(digest)
  ```
</div>
