 |
|
 |
|
Funciones relativas a la criptación |

PHP ofrece a los programadores una serie de funciones para la criptación, ligadas a la biblioteca mcrypt. Esta biblioteca soporta muchísimos algoritmos de criptación, unos más utilizados que otros. Los algoritmos son:
DES
TripleDES
Blowfish
3-WAY
SAFER-SK64
SAFER-Sk128
TWOFISH
TEA
RC2
GOST
RC6
IDEA
Para funcionar con esta biblioteca, el PHP se tiene que haber redactado con la opción "--with-mcrypt".
Los mandos fundamentales son cuatro, todos con la misma sintaxis:
mcrypt_cfb(): cipher feedback; codifica byte por byte;
mcrypt_cbc(): cipher block chaining: útil para el encoding de los archivos con un amplio márgen de seguridad;
mcrypt_ecb(): electronic codebook: utilizada para datos remotos en el que el nivel de seguridad no es altísimo;
mcrypt_ofb(): output feedback: parecido a cfb, pero cuida más de los errores.
La sintaxis en general es:
$encrypted = mcrypt_XXX(algoritmo, clave, input, encode/decode)
en el que:
XXX es el método que se quiere utilizar (cfb, cbc, cfb o ofb);
algoritmo es el algoritmo que se quiere utilizar, con la sintaxis:
MCRYPT_ALGORITMO
Por ejemplo, se podría utilizar
MCRYPT_BLOWFISH o
MCRYPT IDEA
clave no es más que la clave con la que se van a criptar los datos;
input son los datos que hay que criptar;
encode/decode indica la función si se deben criptar o descriptar los datos. Por eso, se utilizan respectivamente:
MCRYPT_ENCRYPT e
MCRYPT_DECRYPT
Vamos a ver un ejempo: si queremos criptar una cadena de texto con clave criptada "Mi clave" utilizando CFB con el algoritmo
IDEA, tendríamos que escribir:
$cadena = "Una cadena de texto";
$chiave = "Mi clave";
$encrypted = mcrypt_cfb(MCRYPT_IDEA, $clave, $cadena, MCRYPT_ENCRYPT);
Todos los que quieran leer nuestros datos criptados ($encrypted) tendrán obviamente que conocer las claves, el método y el algoritmo utilizados. Por lo tanto, se podría escribir algo parecido a:
$clave = "Mi clve";
$cadena = mcrypt_cfb(MCRYPT_IDEA, $chiave, $encrypted, MCRYPT_DECRYPT);
Su variable "$cadena", por lo tanto, incluirá "Una cadena de texto".
|
|
 |
|
 |