Latest web development tutorials
×

PHP curso

PHP curso PHP breve introducción PHP instalar PHP gramática PHP variable PHP echo/print PHP Tipos de datos PHP constante PHP cadena PHP operadores PHP If...Else PHP Switch PHP formación PHP Ordenación de un conjunto PHP superglobals PHP While circulación PHP For circulación PHP función PHP Las variables mágicas PHP Los espacios de nombres PHP Orientado a Objetos

PHP formulario

PHP formulario PHP autenticación de formularios PHP formulario - Los campos necesarios PHP formulario - correo electrónico de verificación y la URL PHP instancia completa formulario PHP $_GET variable PHP $_POST variable

PHP Tutorial avanzado

PHP Las matrices multidimensionales PHP fecha PHP contener PHP expediente PHP Cargar archivo PHP Cookie PHP Session PHP E-mail PHP seguridad E-mail PHP Error PHP Exception PHP filtro PHP filtro avanzado PHP JSON

PHP 7 nuevas características

PHP 7 nuevas características

PHP base de datos

PHP MySQL breve introducción PHP MySQL conexión PHP MySQL La creación de una base de datos PHP MySQL Crear una tabla de datos PHP MySQL insertar datos PHP MySQL Insertar datos múltiples PHP MySQL Sentencias preparadas PHP MySQL leer datos 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 introducción AJAX PHP AJAX base de datos AJAX XML AJAX búsqueda en tiempo real AJAX RSS Reader AJAX voto

PHP Manual de referencia

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 Procesamiento de imágenes PHP RESTful

PHP cripta function ()

Cadena de referencia PHP Cadena de referencia PHP

Definición y Uso

crypt () devuelve el uso de DES, Blowfish, o algoritmo MD5 para cifrar una cadena.

En diferentes sistemas operativos, el comportamiento diferente de la función, algunos sistemas operativos son compatibles con más de un tipo de algoritmo. Durante la instalación, PHP comprobará lo que está disponible y lo que el algoritmo de algoritmo.

Los algoritmos exactos dependen del formato y longitud del argumento sal. sal puede hacer que el cifrado más segura al aumentar el número de una cadena en particular con un método de cifrado específica para generar la cadena.

Estas son algunas de las constantes y cripta () es utilizado con. El valor constante se establece en la instalación por el PHP.

constante:

  • [CRYPT_SALT_LENGTH] - Duración predeterminada de cifrado. El uso de encriptación DES estándar, una longitud de 2
  • [CRYPT_STD_DES] - cifrado DES basado en un estándar de sal 2-carácter, del alfabeto "./0-9A-Za-z". Los caracteres no válidos en la sal conduzcan a la función fracasaron.
  • [CRYPT_EXT_DES] - Extended cifrado basado en DES tiene 9 caracteres de sal por una raya a continuación con 4 bytes de número de iteraciones y 4 bytes de composición de sal. Estos se codifican como caracteres imprimibles, cada una de 6, carácter menos significativo. 0-63 valor se codifica como "./0-9A-Za-z". Los caracteres no válidos en la sal conduzcan a la función fracasaron.
  • [CRYPT_MD5] - cifrado MD5 tiene sal 12 caracteres, comenzando con $ 1 $.
  • [CRYPT_BLOWFISH] - encriptación Blowfish tiene un $ 2a $, $ 2x $ o $ $ 2y comienzo de sal, un parámetro de coste de dos dígitos, "$", así como del alfabeto "./0-9A-Za-z" 22 caracteres. Uso distintos de los caracteres del alfabeto se activará la función devuelve una cadena de 0 de. "$" Parámetro es el logaritmo en base 2 del número de iteraciones algoritmo hash Blowfish debe estar en el rango de 04 a 31. Los valores fuera de este rango dará lugar a la función falló.
  • [CRYPT_SHA_256] - cifrado SHA-256 cuenta con sal 16 caracteres, comenzando con $ 5 $. Si la cadena de sal "rondas = <N> $" se inicia, se ejecuta el valor digital de N veces el hash utiliza para indicar el bucle, que es similar al parámetro de coste Blowfish. El número predeterminado de ciclos es de 5000, el valor mínimo es de 1000, el máximo es de 999.999.999. N es cualquier valor fuera de este rango se convierte en el valor límite más cercano.
  • [CRYPT_SHA_512] - cifrado SHA-512 cuenta con sal 16 caracteres, comenzando con $ 6 $. Si la cadena de sal "rondas = <N> $" se inicia, se ejecuta el valor digital de N veces el hash utiliza para indicar el bucle, que es similar al parámetro de coste Blowfish. El número predeterminado de ciclos es de 5000, el valor mínimo es de 1000, el máximo es de 999.999.999. N es cualquier valor fuera de este rango se convierte en el valor límite más cercano.

En esta función es compatible con sistema de múltiples algoritmos, si es soportado por encima constante se establece en "1", de lo contrario, se establece en "0"

Nota: No existe unafunción de descifrado correspondiente. crypt () utiliza un algoritmo de función de un solo sentido.


gramática

crypt( str,salt )

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

detalles técnicos

Devuelve: Las devoluciones codificadas de cadena, si no retorne menos de 13 caracteres y una garantía de la cadena es diferente de la sal.
versión de PHP: 4+
registro de actualización: En PHP 5.3.7, añadir los $ 2x $ y $ $ 2y modos Blowfish para manejar alta posible ataque.

En PHP 5.3.2, añadir la constante SHA-256 y SHA-512.

A partir de PHP 5.3.2 en adelante, Blowfish en un bucle no válido volverá "fracaso" de cadena ( "* 0" o "* 1"), en lugar de volver a DES.

A partir de PHP 5.3.0, PHP viene con cifrado MD5 para lograr, alcanzar el estándar DES, Blowfish y ampliado algoritmo DES de lograr. Si el sistema no es compatible con estos algoritmos utilizarán propio algoritmo de PHP.


Ejemplos

Ejemplo 1

En este ejemplo, vamos a probar 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.";
}
?>

El código anterior da el siguiente resultado (dependiendo del sistema operativo):

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.



Cadena de referencia PHP Cadena de referencia PHP