Árvore de páginas
Ir para o final dos metadados
Ir para o início dos metadados

HMAC (Hash-based Message Authentication Code) gera o hash de autenticação de uma mensagem de entrada, em combinação com uma chave secreta. Essa implementação suporta os algoritmos SHA-1,SHA-256,SHA-512 e MD5.

Sintaxe

HMAC( < cContent >, < cKey >, < nCryptoType >, [ nRetType ] )

Parâmetros

Nome

Tipo

Descrição

Obrigatório

Referência

cContent

caractere

Indica a string de entrada que contém os dados para os quais será gerado o hash.

X


cKey

caractere

Indica a chave que será utilizada para gerar o hash.

X


nCryptoType

numérico

Indica o tipo de algoritmo criptográfico que será utilizado para geração do Hash. Veja tabela nas observações.

X


nRetType

numérico

Indica o tipo do formato de retorno do hash. Quando não informado valor padrão será 2 (Hex Hash). Veja tabela nas observações.



Retorno

Nome

Tipo

Descrição

cDigest

caractere

Retorna o hash (Message Authentication Code) do conteúdo de entrada informado, no formato especificado.

Observações

  • A geração de um hash (Message Authentication Code) normalmente é utilizada para verificar se o conteúdo é originário de uma fonte confiável, por exemplo, uma empresa que sofre com atacantes que inserem pedidos fraudulentos pela Internet podem solicitar que todos os seus clientes forneçam uma chave secreta com ele. Junto com um pedido, um cliente deve fornecer o resumo do HMAC do pedido, computado por meio da chave simétrica do cliente. A empresa, que conhece a chave simétrica do cliente, pode então verificar que o pedido se originou a partir do cliente indicado e não foi adulterado.
  • Tipo de algoritmo válido para o parâmetro nCryptoType:

    Valor

    Algoritmo

    1

    MD5

    3

    SHA1

    5

    SHA256

    7

    SHA512

  • Tipo de Outputs para o parâmetro nRetType:

    Valor

    Formato

    1

    Raw Hash

    2

    Hex Hash (Default)

  • Caso algum erro ocorra durante a geração do hash uma mensagem de erro será gerada no log no servidor e o hash de saída será vazio.

Exemplos

User Function tstHMAC()

  Local sInput    := "0123456789abcdefghijklmnopqrstuvxz"
  Local sKeyHx    := "c8783fc0963838abc662c920c82e94cf"
  Local nCpSHA256 := 5
  Local sHashHex  := ""
  Local sHashRaw  := ""

  sHashHex := HMAC( sInput, sKeyHx, nCpSHA256 )
  Varinfo( "Input     ",  sInput   )
  Varinfo( "HMAC-SHA256 Hex",  sHashHex )

  sHashRaw := HMAC( sInput, sKeyHx, nCpSHA256, 1 )
  Varinfo( "HMAC-SHA256 Raw",  sHashRaw )

 Return

Abrangência

AppServer 13.1.3.16 e 13.2.3.16

Veja também

  • Sem rótulos