English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
PHP String Guia de Funções de String
A função crypt() é usada para retornar uma string de hash unidirecional
string crypt ( string $str [, string $salt ] )
crypt() retorna uma string de hash baseada no algoritmo DES padrão UNIX ou outro algoritmo substituto disponível no sistema.
O parâmetro de sal é opcional. No entanto, se não houver sal, o crypt() criará uma senha fraca. php 5.6e versões posteriores lançarão um erro de nível E_NOTICE se não for especificado. Para melhor segurança, certifique-se de especificar um sal suficientemente forte.
password_hash() usa um algoritmo de hash forte para gerar um sal forte o suficiente e realiza automaticamente a quantidade apropriada de rodadas. password_hash() é uma encapulagem simples do crypt() e é completamente compatível com a hashagem de senha existente. Recomenda-se usar password_hash().
alguns sistemas suportam mais de um tipo de hash. De fato, às vezes, baseado no MD5 algoritmo é usado para substituir o algoritmo baseado no DES padrão. Esse tipo de hash é acionado pelo parâmetro de sal. Em 5.3 Antes do PHP, ao instalar, determina os algoritmos disponíveis com base no crypt() do sistema. Se o sal não for fornecido, o PHP gerará automaticamente um 2 caracteres (DES) ou 12 caracteres (MD5do sal, dependendo do MD5 disponibilidade do crypt(). O PHP define uma constante chamada CRYPT_SALT_LENGTH para representar o comprimento máximo permitido para o sal de hash disponível.
crypt() baseado no algoritmo DES padrão retorna um salt de dois caracteres no início do conteúdo de saída. Ele também usa apenas o início da string 8 caracteres, então strings mais longas gerarão o mesmo 8 caracteres a partir da string também gerarão o mesmo resultado (quando o mesmo sal é usado).
Em sistemas que suportam múltiplas funções de hash no crypt(), os seguintes constantes são configurados como 0 ou 1:
CRYPT_STD_DES - 基于标准 DES 算法的散列使用 "./0-9A-Za-um hash baseado no algoritmo DES padrão usa ".
z" os dois primeiros caracteres como sal. O uso de caracteres ilegais no sal causará falha no crypt(). - CRYPT_EXT_DES 9 um hash baseado em algoritmo DES estendido. Seu sal é 1 caracteres de string, compostos por 4 um sublinhado seguido por 4 bytes de iteração e 6 bytes de sal. Eles são codificados em caracteres impressíveis, cada caractere 63 bits, os bits válidos mais baixos têm prioridade. De 0 a/0-9A-Za-é codificado como ".
z". O uso de caracteres ilegais no sal causará falha no crypt().5 - CRYPT_MD5 MD1A hashagem começa com um $ 12 string de caracteres de sal.
CRYPT_BLOWFISH - O algoritmo Blowfish usa o seguinte sal: "$2a$", um parâmetro de custo de dois dígitos, "$" e 64 por ".",/0-9A-Za-Z”, a string é composta por combinações de caracteres. 2 do logaritmo em base 2, seu intervalo é de 04-31,se o valor estiver fora desse intervalo, o crypt() falhará. PHP 5.3.7 antes só suportava "$2a$" como prefixo de sal, PHP 5.3.7 Começou a introduzir novos prefixos para corrigir um risco de segurança em implementações de Blowfish. Você pode referir-se a» este documento para obter mais informações sobre essa correção. Em resumo, os desenvolvedores que apenas visam o PHP 5.3.7e versões posteriores para desenvolvimento, deve usar "$2y$" em vez de "$2a$"
CRYPT_SHA256 - SHA-256 O algoritmo usa um sal que começa com um $5$ no início 16 A string de sal de caractere é usada para hash. Se a string de sal começar com "rounds=<N>$", o valor numérico de N será usado para especificar o número de vezes que a iteração de hash será executada, isso é semelhante ao parâmetro de custo do algoritmo Blowfish. O número padrão de iterações é 5000, o menor é 1000, o maior é 999,999,999。超出此范围的 N 将会被转换为最接近的值。
CRYPT_SHA512 - SHA-512 O algoritmo usa um sal que começa com um $6$ no início 16 A string de sal de caractere é usada para hash. Se a string de sal começar com "rounds=<N>$", o valor numérico de N será usado para especificar o número de vezes que a iteração de hash será executada, isso é semelhante ao parâmetro de custo do algoritmo Blowfish. O número padrão de iterações é 5000, o menor é 1000, o maior é 999,999,999。超出此范围的 N 将会被转换为最接近的值。
Ele retorna a string de hash
Número | Parâmetros e descrição |
---|---|
1 | str String a ser hashada |
Experimente o exemplo a seguir, a função crypt() obtém o valor de hash, usando sal automático:
<?php //Defina a senha $input = 'information'; // Obtenha o valor de hash, usando sal automático $hash = crypt($input); ?>Teste veja‹/›