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 v20 R7
Generate password hash

Generate password hash 


 

Generate password hash ( senha {; opções} ) -> Resultado 
Parâmetro Tipo   Descrição
senha  String in A senha do usuário. Só os primeiros 72 caracteres são usados
opções  Objeto in Um objeto contendo opções
Resultado  String in Retorna a senha hashed

A função Generate password hash devolve um hash de senha seguro gerado por um algoritmo de hash criptográfico.

Passe um valor de string no parâmetro senha. Generate password hash devolve uma string de hash para a senha. Múltiplos passes da mesma senha darão lugar a strings hash diferentes.

No objeto opções, passe as propriedades que se utilizarão ao gerar o hash da senha. Os valores disponíveis são mostrados na tabela abaixo:
 

PropriedadeTipo de valorDescriçãoValor por padrão
algorithmstringalgoritmo que se utilizará. Atualmente só se admite "bcrypt" (sensível a maiúsculas e minúsculas).bcrypt
costnuméricovelocidade que se utilizará. Os valores admitidos para bcrypt estão entre 4 e 31.10

Nota: se um valor no objeto de opções não for válido, se devolverá uma mensagem de erro e uma string vazia.

The following errors may be returned. You can review an error with the GET LAST ERROR STACK and ON ERR CALL commands.
 

NumberMessage
850Password-hash: Unsupported algorithm.
852Password-hash: Unavailable bcrypt cost parameter, please provide a value between 4 and 31.

bcrypt is a password hashing function based on the Blowfish cipher. In addition to incorporating a salt to protect against rainbow table attacks, it's an adaptive function in which the iteration count can be increased to make it slower, so it remains resistant to brute-force attacks even with increasing computation power because it takes longer and becomes too time consuming and expensive.

Exemplo  

Este exemplo gera um hash de senha utilizando bcrypt com um fator de custo 4.

 C_TEXT($password)
 C_TEXT($hash)
 C_OBJECT($options)
 
 $options:=New object("algorithm";"bcrypt";"cost";4)
 $password:=Request("Por favor digite sua senha")
 
 $hash:=Generate password hash($password;$options)
 [Users]hash:=$hash
 SAVE RECORD([Users])

Nota: Múltiplas passadas da mesma senha resultará em diferentes strings hash. Esse é um comportamento normal para algoritmos como  bcrypt, já que a melhor prática é criar um novo "sal" aleatório para cada hash. Veja a descrição Verify password hash para um exemplo de como checar as senhas.



Ver também 

4D Security guide
Generate digest
Verify password hash

 
PROPRIEDADES 

Produto: 4D
Tema: Ferramentas
Número 1533

This command can be run in preemptive processes

 
CONTEÚDO DA PÁGINA 
 
HISTÓRIA 

Criado por: 4D v16 R5

 
ARTICLE USAGE

Manual de linguagem 4D ( 4D v20 R7)