Latest web development tutorials
×

PHP curso

PHP curso PHP breve introdução PHP instalar PHP gramática PHP variável PHP echo/print PHP Tipos de dados PHP constante PHP corda PHP operadores PHP If...Else PHP Switch PHP ordem PHP Classificação de uma matriz PHP superglobais PHP While circulação PHP For circulação PHP função PHP Variáveis ​​mágicas PHP namespaces PHP Object-Oriented

PHP formulário

PHP formulário PHP Autenticação de formulários PHP formulário - campos obrigatórios PHP formulário - -mail de verificação e URL PHP instância de formulário completo PHP $_GET variável PHP $_POST variável

PHP Tutorial avançado

PHP arrays multidimensionais PHP data PHP conter PHP arquivo PHP Carregar arquivo PHP Cookie PHP Session PHP E-mail PHP segurança E-mail PHP Error PHP Exception PHP filtro PHP Filtro avançado PHP JSON

PHP 7 novos Recursos

PHP 7 novos Recursos

PHP banco de dados

PHP MySQL breve introdução PHP MySQL conexão PHP MySQL Criação de um banco de dados PHP MySQL Criar uma tabela de dados PHP MySQL inserir dados PHP MySQL Inserir dados múltiplos PHP MySQL instruções preparadas PHP MySQL ler dados PHP MySQL WHERE PHP MySQL ORDER BY PHP MySQL UPDATE PHP MySQL DELETE PHP ODBC

PHP XML

XML Expat Parser XML DOM XML SimpleXML

PHP & AJAX

AJAX breve introdução AJAX PHP AJAX banco de dados AJAX XML AJAX busca em tempo real AJAX RSS Reader AJAX voto

PHP manual de referência

PHP Array PHP Calendar PHP cURL PHP Date PHP Directory PHP Error PHP Filesystem PHP Filter PHP FTP PHP HTTP PHP Libxml PHP Mail PHP Math PHP Misc PHP MySQLi PHP PDO PHP SimpleXML PHP String PHP XML PHP Zip PHP Timezones PHP Processamento de imagem PHP RESTful

PHP função crypt ()

PHP seqüência de referência PHP seqüência de referência

Definição e Uso

crypt () devolve o uso de DES, Blowfish, ou algoritmo MD5 para criptografar uma string.

Em diferentes sistemas operacionais, comportamento diferente da função, alguns sistemas operacionais suportam mais de um tipo de algoritmo. Ao instalar, PHP irá verificar o que está disponível e que o algoritmo algoritmo.

Os algoritmos exatos contar com o formato e comprimento do argumento sal. sal pode fazer a criptografia mais segura, aumentando o número por uma corda especial com um método de criptografia específica para gerar a string.

Aqui estão algumas constantes e crypt () função é usada com. O valor da constante é definida no momento da instalação do PHP.

constante:

  • [CRYPT_SALT_LENGTH] - padrão comprimento de criptografia. A utilização de encriptação DES standard, um comprimento de 2
  • [CRYPT_STD_DES] - encriptação DES baseada em um padrão de sal de 2 caracteres, do alfabeto "./0-9A-Za-z". caracteres inválidos no sal levará a função falhou.
  • [CRYPT_EXT_DES] - Extensão criptografia baseada em DES têm sal 9 caracteres por um sublinhado para trás com 4 bytes de contagem de iteração e 4 bytes de composição de sal. Estes são codificados como caracteres imprimíveis, cada um dos 6, caráter menos significativo primeiro. 0-63 valor é codificado como "./0-9A-Za-z". caracteres inválidos no sal levará a função falhou.
  • [CRYPT_MD5] - criptografia MD5 tem sal 12 caracteres, começando com $ 1 $.
  • [CRYPT_BLOWFISH] - criptografia Blowfish tem um $ 2a $, $ 2x $ ou $ 2a $ início de sal, um parâmetro de custo de dois dígitos, "$", bem como do alfabeto "./0-9A-Za-z" 22 caracteres. Use excepção caracteres do alfabeto vai desencadear função retorna uma string de 0 do. "$" Parâmetro é o logaritmo de base 2 o número de iterações algoritmo de hashing Blowfish deve estar na gama de 04-31. Valores fora deste intervalo levará a função falhou.
  • [CRYPT_SHA_256] - criptografia SHA-256 tem sal 16 caracteres, começando com US $ 5 $. Se a cadeia de sal "rounds = <N> $" começa, o valor digital da N vezes o hash usado para indicar o laço é executado, que é similar ao parâmetro de custo Blowfish. O número padrão de ciclos é de 5000, o valor mínimo é de 1000, o máximo é de 999.999.999. N é um valor fora deste intervalo será convertido para o valor limite mais próximo.
  • [CRYPT_SHA_512] - criptografia SHA-512 tem sal 16 caracteres, começando com US $ 6 $. Se a cadeia de sal "rounds = <N> $" começa, o valor digital da N vezes o hash usado para indicar o laço é executado, que é similar ao parâmetro de custo Blowfish. O número padrão de ciclos é de 5000, o valor mínimo é de 1000, o máximo é de 999.999.999. N é um valor fora deste intervalo será convertido para o valor limite mais próximo.

Nesta função suporta sistema de vários algoritmos, se suportado acima constante é definido como "1", caso contrário, ele é definido como "0"

Nota: Não nenhuma função de decodificação correspondente. crypt () função usa um algoritmo unidirecional.


gramática

crypt( str,salt )

参数 描述
str 必需。规定要编码的字符串。
salt 可选。用于增加被编码字符数目的字符串,以使编码更加安全。如果未提供 salt 参数,则每次调用该函数时会随机生成一个。

detalhes técnicos

retorna: Devoluções criptografado corda, se ele falhar para retornar menos de 13 caracteres e uma garantia da cadeia é diferente do sal.
versão do PHP: 4+
log Update: No PHP 5.3.7, adicionar os $ 2x $ e $ 2y modos $ Blowfish para lidar com ataque alto potencial.

No PHP 5.3.2, adicione a constante SHA-256 e SHA-512.

Desde o PHP 5.3.2 em diante, Blowfish em um loop inválido retornará "fracasso" string ( "* 0" ou "* 1"), ao invés de voltar para DES.

A partir do PHP 5.3.0, PHP vem com criptografia MD5 para alcançar, atingir o padrão DES, Blowfish e estendeu algoritmo DES de alcançar. Se o sistema não suporta estes algoritmos usará próprio algoritmo de PHP.


Exemplos

exemplo 1

Neste exemplo, vamos testar diferentes algoritmos:

<?php
// 2 character salt
if (CRYPT_STD_DES == 1)
{
echo "Standard DES: ".crypt('something','st')."n<br>";
}
else
{
echo "Standard DES not supported.n<br>";
}

// 4 character salt
if (CRYPT_EXT_DES == 1)
{
echo "Extended DES: ".crypt('something','_S4..some')."n<br>";
}
else
{
echo "Extended DES not supported.n<br>";
}

// 12 character salt starting with $1$
if (CRYPT_MD5 == 1)
{
echo "MD5: ".crypt('something','$1$somethin$')."n<br>";
}
else
{
echo "MD5 not supported.n<br>";
}

// Salt starting with $2a$. The two digit cost parameter: 09. 22 characters
if (CRYPT_BLOWFISH == 1)
{
echo "Blowfish: ".crypt('something','$2a$09$anexamplestringforsalt$')."n<br>";
}
else
{
echo "Blowfish DES not supported.n<br>";
}

// 16 character salt starting with $5$. The default number of rounds is 5000.
if (CRYPT_SHA256 == 1)
{
echo "SHA-256: ".crypt('something','$5$rounds=5000$anexamplestringforsalt$')."n<br>"; }
else
{
echo "SHA-256 not supported.n<br>";
}

// 16 character salt starting with $5$. The default number of rounds is 5000.
if (CRYPT_SHA512 == 1)
{
echo "SHA-512: ".crypt('something','$6$rounds=5000$anexamplestringforsalt$');
}
else
{
echo "SHA-512 not supported.";
}
?>

O código acima exibe o seguinte (dependendo do sistema operacional):

Standard DES: stqAdD7zlbByI
Extended DES: _S4..someQXidlBpTUu6
MD5: $1$somethin$4NZKrUlY6r7K7.rdEOZ0w.
Blowfish: $2a$09$anexamplestringforsaleLouKejcjRlExmf1671qw3Khl49R3dfu
SHA-256: $5$rounds=5000$anexamplestringf$KIrctqsxo2wrPg5Ag/hs4jTi4PmoNKQUGWFXlVy9vu9
SHA-512: $6$rounds=5000$anexamplestringf$Oo0skOAdUFXkQxJpwzO05wgRHG0dhuaPBaOU/
oNbGpCEKlf/7oVM5wn6AN0w2vwUgA0O24oLzGQpp1XKI6LLQ0.



PHP seqüência de referência PHP seqüência de referência