Constantes predefinidas
As contantes abaixo são definidas por esta extensão e
só estarão disponíveis quando a extensão tiver sido compilada no PHP
ou tiver sido carregada dinamicamente em tempo de execução.
A extensão Xpass fornece vários conjuntos de constantes.
Métodos de hash (CRYPT_PREFIX_*
) para
o parâmetro 'prefix' de crypt_gensalt().
Códigos de erro (CRYPT_SALT_*
) retornados por
crypt_checksalt().
Algoritmos de senha (PASSWORD_*
) para
o parâmetro 'algo' de password_hash().
Métodos de hash
-
CRYPT_PREFIX_STD_DES
(string)
-
O método de hash original do Unix V7, baseado na cifra de bloco DES.
Como o DES não é custoso em equipamentos modernos,
já que existem apenas
4096
salts possíveis e 2**56 frases-senha distintas,
que ele trunca para 8 caracteres,
é possível descobrir qualquer frase-senha com hash usando este método.
Ele só deve ser usado ao oferecer suporte a sistemas operacionais antigos que não suportam
nenhum outro algoritmo de geração de hash, devido à fragilidade dos hashes DES.
-
CRYPT_PREFIX_EXT_DES
(string)
-
Uma extensão do DES tradicional, que elimina o limite de comprimento,
aumenta o tamanho do salt e torna o custo de tempo ajustável.
Ele se originou com o BSDI BSD/OS e também está disponível pelo menos no NetBSD,
OpenBSD e FreeBSD devido ao uso da biblioteca FreeSec de David Burren.
É muito melhor que o DES tradicional e o bigcrypt,
mas ainda não deve ser usado para novos hashes.
-
CRYPT_PREFIX_MD5
(string)
-
Um hash baseado no algoritmo MD5, originalmente desenvolvido por Poul-Henning Kamp para o FreeBSD.
Suportado na maioria dos Unixes livres e versões mais recentes do Solaris.
Não tão fraco quanto os hashes baseados em DES abaixo,
mas o MD5 é tão leve em equipamentos modernos que não deve ser usado para novos hashes.
O custo de processamento não é ajustável.
-
CRYPT_PREFIX_BLOWFISH
(string)
-
Um hash baseado na cifra de bloco Blowfish, modificado para ter um agendamento de chaves mais custoso.
Originalmente desenvolvido por Niels Provos e David Mazieres para o OpenBSD e também suportado em versões recentes
do FreeBSD e NetBSD, no Solaris 10 e mais recentes, e em diversas distribuições GNU/*/Linux.
-
CRYPT_PREFIX_SHA256
(string)
-
Um hash baseado em SHA-2 com saída de 256 bits, originalmente desenvolvido por Ulrich Drepper para a libc GNU.
Suportado no Linux, mas incomum em outros lugares.
Aceitável para novos hashes.
O parâmetro de custo de processamento padrão é
5000
,
o que é muito baixo para equipamentos modernos.
-
CRYPT_PREFIX_SHA512
(string)
-
Um hash baseado em SHA-2 com saída de 512 bits, originalmente desenvolvido por Ulrich Drepper para a libc GNU.
Suportado no Linux, mas incomum em outros lugares.
Aceitável para novos hashes.
O parâmetro de custo de processamento padrão é
5000
,
o que é muito baixo para equipamentos modernos.
-
CRYPT_PREFIX_SCRYPT
(string)
-
Scrypt é uma função de derivação de chaves baseada em senhas criada por Colin Percival,
originalmente para o serviço de backup online Tarsnap.
O algoritmo foi projetado especificamente para tornar custosa a execução
de ataques de hardware personalizados em larga escala, exigindo grandes quantidades de memória.
Em 2016, o algoritmo scrypt foi publicado pela IETF como RFC 7914.
-
CRYPT_PREFIX_GOST_YESCRYPT
(string)
-
Gost-yescrypt utiliza a saída de yescrypt como uma mensagem de entrada para o HMAC com a
função de hash GOST R 34.11-2012 (Streebog) com um resumo de 256 bits.
Assim, as propriedades criptográficas de yescrypt são substituídas pelas da função de hash GOST.
Este método de hash é útil em aplicações que necessitam de hash de senha moderna,
mas que dependem de algoritmos GOST.
A função de hash GOST R 34.11-2012 (Streebog) foi publicada pela IETF como RFC 6986.
Aceitável para novos hashes, quando necessário.
-
CRYPT_PREFIX_YESCRYPT
(string)
-
Yescrypt é um esquema de hash de senha escalável desenvolvido pela Solar Designer,
baseado no scrypt de Colin Percival.
Embora a força do yescrypt contra ataques de adivinhação de senha venha do projeto do seu algoritmo,
sua segurança criptográfica é garantida pelo uso de SHA-256 na camada externa.
A função de hash SHA-256 foi publicada pelo NIST na FIPS PUB 180-2
(e suas revisões subsequentes, como a FIPS PUB 180-4) e pela IETF como RFC 4634
(e posteriormente RFC 6234).
Recomendado para novos hashes.
Códigos de erro
-
CRYPT_SALT_OK
(int)
-
Nenhum erro.
-
CRYPT_SALT_INVALID
(int)
-
Método de hash desconhecido ou parâmetros inválidos.
-
CRYPT_SALT_METHOD_DISABLED
(int)
-
O método de hash não pode mais ser usado.
-
CRYPT_SALT_METHOD_LEGACY
(int)
-
O método de hash não é mais considerado forte o suficiente.
-
CRYPT_SALT_TOO_CHEAP
(int)
-
Os parâmetros de custo são considerados muito baixos.
Algoritmos de senha
-
PASSWORD_SHA512
(string)
-
PASSWORD_SHA512
é usado para criar novos hashes de senha
usando o algoritmo CRYPT_SHA512
.
-
PASSWORD_YESCRYPT
(string)
-
PASSWORD_YESCRYPT
é usado para criar novos hashes
de senha usando o algoritmo CRYPT_YESCRYPT
.