Almacenar contraseña en la base de datos MySQL
- que es hashing
-
Use
MD5 (str)
para almacenar contraseñas en MySQL -
Use
SHA1 (str)
para almacenar contraseñas en MySQL -
Utilice la función
CONTRASEÑA
para almacenar contraseñas en MySQL -
Use la función
ENCRYPT
para almacenar contraseñas en MySQL
Si no tiene idea de cómo almacenar una contraseña en la base de datos MySQL, este es el lugar correcto. En esta guía, podrá aprender cómo almacenar contraseñas hash en la base de datos MySQL, las diferentes técnicas y sus métodos específicos utilizados para almacenar la contraseña Hash.
que es hashing
Hashing convierte un número determinado de claves o una cadena de caracteres en un valor de longitud fija más corto. En Hashing, el hecho de que los datos tengan un tamaño fijo significa que cualquier número de claves o cadenas de caracteres convertidos en caracteres hash tienen el mismo tamaño.
Otra propiedad del hash es que es un proceso no recuperable, lo que significa que si un valor se ha convertido en un hash, no hay forma de recuperar el valor de los datos originales.
En MySQL se utilizan diferentes funciones de hashing; estos son los siguientes:
MD5 (calle)
SHA1 (calle)
CONTRASEÑA
CIFRAR
Use MD5 (str)
para almacenar contraseñas en MySQL
md5
es una función que toma una suma de comprobación de datos de 128 bits y la devuelve como una cadena de 32 dígitos hexadecimales.
Primero, creamos una tabla clientes
en nuestra base de datos y dos campos de esa tabla con el tipo de datos varchar
.
Insertamos algunos valores y creamos una contraseña hash usando md5
.
Como puede ver, la función md5
transformó nuestros dos valores de entrada en 32 dígitos hexadecimales.
Mostremos lo que queríamos decir antes cuando dijimos que es una función no recuperable.
Como puede ver, tuvimos que usar la función md5
para nuestros dos valores para recuperar nuestros datos; de lo contrario, generaba un error.
Use SHA1 (str)
para almacenar contraseñas en MySQL
sha1
es una función de hash que tiene un rango mucho mayor que la función md5
anterior. Convierte la suma de verificación de datos de 160 bits en una cadena de 40 dígitos hexadecimales.
Aquí hay un ejemplo para su mejor comprensión.
A estas alturas, ya habría tenido una idea amplia de que estas dos funciones hash funcionan y por qué son diferentes entre sí. Otra cosa sobre sha1
es que tiene versiones mucho mejores disponibles, proporcionando un rango mucho mayor.
Estos son los siguientes:
SHA224
: convierte la suma de comprobación de datos de 224 bits y devuelve una cadena de 56 dígitos hexadecimales.SHA256
: convierte la suma de comprobación de datos de 256 bits y devuelve una cadena de 64 dígitos hexadecimales.SHA384
: convierte la suma de comprobación de datos de 384 bits y devuelve una cadena de 96 dígitos hexadecimales.SHA512
: convierte la suma de comprobación de datos de 512 bits y devuelve una cadena de 128 dígitos hexadecimales.
Utilice la función CONTRASEÑA
para almacenar contraseñas en MySQL
La función contraseña
genera una contraseña codificada utilizando una cadena de contraseña de texto sin formato. La función contraseña
devolvería NULL
en caso de un argumento NULL.
Hagamos algunos ejemplos para su mejor comprensión.
SELECT
PASSWORD('xyz');
Producción :
6gd7gb67shy87865
Ahora, probemos una cadena que tenga dígitos y caracteres.
SELECT
PASSWORD('xyz123');
Producción :
54fg56gs32sgi3862
Otra cosa importante con respecto a la función contraseña
es que no es compatible con todas las versiones de MySQL. Las versiones compatibles son:
- MySQL 5.6
- MySQL 5.5
- MySQL 5.1
- MySQL 5.0
- MySQL 4.1
Use la función ENCRYPT
para almacenar contraseñas en MySQL
Es una conversión de una cadena de caracteres en datos binarios difíciles de leer. Los datos cifrados se pueden descifrar fácilmente más tarde.
Una nota importante es que el tipo de datos de la columna debe ser BLOB
.
Para el Cifrado
, se utilizan dos tipos de funciones:
AES
(Estándares de cifrado avanzado
): utiliza un algoritmo AES oficial que garantiza una codificación con una clave de 128 bits. Para el cifrado usandoaes
, debe escribirAES_ENCRYPT(str,key_str)
.DES
(Estándares de cifrado de datos
) utiliza el algoritmo Triple-DES. La condición para este cifrado es que MySQL debe configurarse con soporte SSL.
Un punto a reflexionar aquí es que la función Cifrar
está disponible solo para los sistemas operativos Unix. Entonces, para otros sistemas operativos, tendríamos que usar AES o DES Encryption.
Para familiarizarte con esta técnica, profundicemos en la función de cifrado
.
Después de aplicar el AES_Encryption
sobre el valor, podemos ver sus efectos en la tabla. Tenga otro ejemplo:
Para recuperar nuestro valor, tendríamos que proporcionar la clave correcta; de lo contrario, no recuperaríamos los datos deseados.
Aquí, insertamos la clave incorrecta y el resultado se muestra a continuación.
Aquí, recuperamos nuestros otros valores usando la tecla correcta.
Haider specializes in technical writing. He has a solid background in computer science that allows him to create engaging, original, and compelling technical tutorials. In his free time, he enjoys adding new skills to his repertoire and watching Netflix.
LinkedIn