Este é o site histórico da documentação 4D. As documentações estão sendo movidas progressivamente para developer.4d.com |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v19.8
Generate digest
|
Generate digest ( param ; algoritmo {; *} ) -> resultado | ||||||||
Parâmetro | Tipo | Descrição | ||||||
param | BLOB, Variável texto |
![]() |
Blob o texto para o qual obter uma chave digest | |||||
algoritmo | Inteiro longo |
![]() |
Algoritimo utilizado para retornar a chave: 0 = MD5 Digest, 1 = SHA1 Digest |
|||||
* | Operador |
![]() |
Encode digest in Base64URL | |||||
resultado | Texto |
![]() |
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
BASE64 DECODE
BASE64 ENCODE
Generate password hash
Protocolo de segurança
WEB Validate digest
Produto: 4D
Tema: Ferramentas
Número
1147
Criado por: 4D v13
Modificado: 4D v14
Modificado: 4D v16 R5
Modificado: 4D v18 R4
Manual de linguagem 4D ( 4D v19.7)
Manual de linguagem 4D ( 4D v19.8)