Encriptar cadena de forma sencilla con PHP
Si necesitamos encriptar algún dato sensible, como los números de tarjetas de crédito o contraseñas podremos hacerlo mediante base de datos o utilizando PHP.
password_hash
Si utilizamos la función password_hash() de PHP podremos generar un hash, y posteriormente hacer comprobaciones contra éste.
En el siguiente ejemplo vamos a generar un hash a partir de una cadena:
<?php
$opciones = [
'cost' => 12,
];
$dato_sensible = "Este es el mensaje original";
$hash = password_hash($dato_sensible, PASSWORD_BCRYPT, $opciones); exit();
?>
password_verify
Utilizaremos esta función para comprobar que el hash del dato que le pasamos coincida con el que tenemos almacenado.
En el siguiente ejemplo vamos a comprobar que un hash creado a partir de un dato recibido coincide con el almacenado:
<?php
$dato_recibido = "Este es el mensaje original";
$hash_almacenado = "$2y$12$XQj4owWEaX3gJmLU8IHKUuO0QZmHOciwLwipWEDXzSDFEYAgnql8G";
if(password_verify($dato_recibido, $hash_almacenado)) {
echo "Coincide";
}else{
echo "No coincide";
}
?>