Este é o site histórico da documentação 4D. As documentações estão sendo movidas progressivamente para developer.4d.com

Página Inicial

 
4D v19.8
Generate digest

Generate digest 


 

Generate digest ( param ; algoritmo {; *} ) -> resultado 
Parâmetro Tipo   Descrição
param  BLOB, Variável texto in Blob o texto para o qual obter uma chave digest
algoritmo  Inteiro longo in Algoritimo utilizado para retornar a chave:
0 = MD5 Digest, 1 = SHA1 Digest
Operador in Encode digest in Base64URL
resultado  Texto in Valor da chave digest

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 :

Constante Tipo Valor Comentário
4D digest Inteiro longo 2 Utilizar o algoritmo interno de 4D
MD5 digest Inteiro longo 0 Utilizar o algoritmo MD5
SHA1 digest Inteiro longo 1 Utilizar o algoritmo SHA-1
SHA256 digest Inteiro longo 3 (Familia SHA-2) SHA-256 é uma série de 256 bits devolvidos como uma string de 64 caracteres hexadecimais.
SHA512 digest Inteiro longo 4 (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).

Este exemplo compara duas imagens utilizando o algoritmo MD5:

 C_PICTURE($vPict1;$vPict2)
 C_BLOB($FirstBlob;$SecondBlob)
 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

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"

Este exemplo só aceita o usuário "admin" com a senha "123" que não corresponde a um usuário 4D:

  //On REST Authentication database method
 C_TEXT($1;$2)
 C_BOOLEAN($0;$3)
  //$1: usuário
  //$2: senha
  //$3: modo digest
 If($1="admin")
    If($3)
       $0:=($2=Generate digest("123";4D digest))
    Else
       $0:=($2="123")
    End if
 Else
    $0:=False
 End if



Ver também 

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

 
PROPRIEDADES 

Produto: 4D
Tema: Ferramentas
Número 1147

This command can be run in preemptive processes

 
CONTEÚDO DA PÁGINA 
 
HISTÓRIA 

Criado por: 4D v13
Modificado: 4D v14
Modificado: 4D v16 R5
Modificado: 4D v18 R4

 
ARTICLE USAGE

Manual de linguagem 4D ( 4D v19.7)
Manual de linguagem 4D ( 4D v19.8)