Manual do PHP
Anterior |  | Próxima

# crypt

(PHP 3, PHP 4 , PHP 5)

crypt -- Único caminho de codificação de string (hashing)

## Descrição

string crypt ( string str [, string salt] )

crypt() retornará uma string criptografada usando o algoritmo de encriptação Unix Standard DES-based ou ou algoritmos alternativos disponíveis no sistema. Os argumentos são uma string para ser criptografada e uma string opcional para basear em qual encriptação está. Veja a página de encriptação Unix para mais informação.

Se o argumento salt não é fornecido, um argumento aleatório será gerado pelo PHP.

Alguns SO suportam mais de um tipo de codificação. De fato, algumas vezes a codificação Standard DES-based é substituído por MD5-based . O tipo de codificação é definido pelo argumento salt. Na instalação, o PHP determina as possíveis funções de codificação e aceitará salts para outros tipos. Se nenhum salt é fornecido, o PHP auto-gera um salt padrão de 2 caracateres por definição, a menos que o tipo de codificação padrão do sistema seja MD5, nesse caso um salt MD5-compatible aleatório será gerado. O PHP define uma constante com nome CRYPT_SALT_LENGTH que dirá se um salt de 2 caracteres aplica-se ao seu sistema ou se o salt mais comprido de 12 caracteres é aplicavél.

Se você está usando um salt fornecido, você está ciente que o salt é gerado uma vez. Se você está chamando essa função repetidamente, isto pode afetar a aparência e a segurança.

O Standard DES-based crypt() retorna o salt como o primeiro two characters da saída. Ele também usa apenas os oito primeiros caracteres da str, então strings longas que começam com os mesmos oito caracteres gerarão o mesmo resultado (quando o mesmo salt é usado).

Em sistemas onde a função crypt() suporta variados tipos de codificação, as seguintes funções são definidas para 0 ou 1 a depender se um dado tipo está disponível:

- CRYPT_STD_DES - Codificação Standard DES-based com um salt de 2 caracteres

- CRYPT_EXT_DES - Codificação Extended DES-based com um salt de 9 caracateres

- CRYPT_MD5 - Codificação MD5 com um salt de 12 caracteres começando com $1$

- CRYPT_BLOWFISH - Codificação Blowfish com um salt de 16 caracteres começando com $2$

> Nota: Não há função de decodificação, desde que crypt() utiliza uma algorimo de um só caminho.

Exemplo 1. crypt() exemplos

`<?php
$password = crypt("My1sTpassword"); // let salt be generated
# You should pass the entire results of crypt() as the salt for comparing a
# password, to avoid problems when different hashing algorithms are used. (As
# it says above, standard DES-based password hashing uses a 2-character salt,
# but MD5-based hashing uses 12.)
if (crypt($user_input, $password) == $password) {
echo "Password verified!";
}
?>`

Veja também md5() e a extensão Mcrypt.

Anterior | Principal | Próxima
crc32 | Acima | echo