utilizar sh1 password decrypt convertir como aes_encrypt mysql encryption

sh1 - Cómo usar AES_ENCRYPT y AES_DECRYPT en mysql



mysql sha1 decrypt (3)

He creado la tabla de usuario

CREATE TABLE `user` ( `id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT , `first_name` VARBINARY(100) NULL , `address` VARBINARY(200) NOT NULL , PRIMARY KEY (`id`)) ENGINE = InnoDB DEFAULT CHARACTER SET = utf8 COLLATE = utf8_general_ci;

He insertado una fila:

INSERT into user (first_name, address) VALUES (AES_ENCRYPT(''Obama'', ''usa2010''),AES_ENCRYPT(''Obama'', ''usa2010''));

Para seleccionar esta fila utilicé:

SELECT AES_DECRYPT(first_name, ''usa2010''), AES_DECRYPT(address, ''usa2010'') from user;

Estoy obteniendo el siguiente resultado. Lo que necesito hacer es ver mis datos. No hay datos visibles para mí.


Desde el cliente de la línea de comandos mysql no hay necesidad de usar CAST:

mysql> SELECT AES_DECRYPT(AES_ENCRYPT(''admin'',''abc''),''abc'');

+-----------------------------------------------+ | AES_DECRYPT(AES_ENCRYPT(''admin'',''abc''),''abc'') | +-----------------------------------------------+ | admin | +-----------------------------------------------+ 1 row in set (0.00 sec)

mysql> SELECT CAST(AES_DECRYPT(AES_ENCRYPT(''admin'',''abc''),''abc'') AS CHAR (50));

+------------------------------------------------------------------+ | CAST(AES_DECRYPT(AES_ENCRYPT(''admin'',''abc''),''abc'') AS CHAR (50)) | +------------------------------------------------------------------+ | admin | +------------------------------------------------------------------+ 1 row in set (0.02 sec)

Como puedes ver, usar cast en la línea de comandos es un poco más lento. Pero he notado que si usa algunas herramientas como phpmyadmin, entonces necesita usar CAST, de lo contrario el resultado será incorrecto.


Según el Manual:

AES_ENCRYPT () cifra una cadena y devuelve una cadena binaria. AES_DECRYPT () descifra la cadena cifrada y devuelve la cadena original .

No sé por qué todavía está devolviendo una cadena binaria en su caso. De todos modos, intente esto:

SELECT *, CAST(AES_DECRYPT(first_name, ''usa2010'') AS CHAR(50)) first_name_decrypt FROM user

Y use first_name_decrypt lugar de first_name .


if (isset($_POST[''user_name'']) and isset($_POST[''user_password''])){ $user_name = $_POST[''user_name'']; $user_password = $_POST[''user_password'']; $query = "SELECT * FROM `user_tbl` WHERE user_name=''$user_name'' and AES_DECRYPT(user_password , ''@ert'') = ''$user_password''"; $result = mysqli_query($connection, $query) or die(mysqli_error($connection)); $count = mysqli_num_rows($result);