Saltar para o conteúdo principal
Versão: Próximo

Generate digest

Generate digest ( param ; algoritmo {; *} ) -> resultado

ParâmetroTipoDescrição
paramBLOB, Variável texto🡒Blob o texto para o qual obter uma chave digest
algoritmoInteiro longo🡒Algoritimo utilizado para retornar a chave: 0 = MD5 Digest, 1 = SHA1 Digest
*Operador🡒Encode digest in Base64URL
resultadoTexto🡐Valor da chave digest

Descrição

O comando Generate digest retorna a chave digest (ou chave de resumo) de um BLOB ou texto depois da aplicação de um algoritmo de criptografia.

Passe um Text ou então um campo ou variável BLOB no parâmetro param. A função Generate digest retorna a chave digest como uma string.

No parâmetro algoritimo, passe um valor designando qual função hash vai usar. Use uma das constantes abaixo, encontradas no tema Tipo Digest :

ConstanteTipoValorComentário
_o_4D REST digestInteiro longo2*** Constante obsoleta ***
MD5 digestInteiro longo0Utilizar o algoritmo MD5
SHA1 digestInteiro longo1Utilizar o algoritmo SHA-1
SHA256 digestInteiro longo3(Familia SHA-2) SHA-256 é uma série de 256 bits devolvidos como uma string de 64 caracteres hexadecimais.
SHA512 digestInteiro longo4(Família SHA-2) SHA-512 é uma série de 512 bits devolvidos como uma string de 128 caracteres hexadecimais.

Nota: Não é recomendado usar algoritmos MD5 e SHA para manejar senhas. Se precisar checar senhas, é recomendado usar os comandos Generate password hash e Verify password hash .

Por padrão, se o parâmetro * for omitido, o digest retornado é codificado em hexadecimal. Passe o parâmetro * se quiser que seja codificado em Base64URL.

O valor retornado para o mesmo objeto é o mesmo em todas as plataformas (MacOS/Windows). O cálculo é realizado baseado na representação em UTF-8 do texto passado no parâmetro.

Nota: se usar o comando com um texto/BLOB vazio, não retorna void, e sim um valor de string (por exemplo "d41d8cd98f00b204e9800998ecf8427e" para MD5).

Exemplo 1

Este exemplo compara duas imagens utilizando o algoritmo MD5:

 var $vPict1;$vPict2 : Picture
 var $FirstBlob;$SecondBlob : Blob
 READ PICTURE FILE("c:\\myPhotos\\photo1.png")
 If(OK=1)
    READ PICTURE FILE("c:\\myPhotos\\photo2.png")
    If(OK=1)
       PICTURE TO BLOB($vPict1;$FirstBlob;".png")
       PICTURE TO BLOB($vPict2;$SecondBlob;".png")
 
       $MD5_1:=Generate digest($FirstBlob;MD5 digest)
       $MD5_2:=Generate digest($SecondBlob;MD5 digest)
 
       If($MD5_1#$MD5_2)
          ALERT("Essas duas imagens são diferentes.")
       Else
          ALERT("Essas duas imagens são iguais.")
       End if
    End if
 End if

Exemplo 2

Esses exemplos ilustram como recuperar a chave digest de um texto:

 $key1:=Generate digest("The quick brown fox jumps over the lazy dog.";MD5 digest)
  // $key1 is "e4d909c290d0fb1ca068ffaddf22cbd0"
 $key2:=Generate digest("The quick brown fox jumps over the lazy dog.";SHA1 digest)
  // $key2 is "408d94384216f890ff7a0c3528e8bed1e0b01621"

Ver também

BASE64 DECODE
BASE64 ENCODE
Generate password hash
Protocolo de segurança
WEB Validate digest