Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

reconocer mayusculas y minusculas con ecnriptacion AES

Estas en el tema de reconocer mayusculas y minusculas con ecnriptacion AES en el foro de Bases de Datos General en Foros del Web. Hola, quiero poder hacer un login en el que se distingan las mayúsculas de las minúsculas. Por lo que leí por ahí, el tipo de ...
  #1 (permalink)  
Antiguo 12/08/2010, 18:27
Avatar de Cero_Cool  
Fecha de Ingreso: abril-2007
Ubicación: Chile
Mensajes: 113
Antigüedad: 17 años
Puntos: 6
reconocer mayusculas y minusculas con ecnriptacion AES

Hola, quiero poder hacer un login en el que se distingan las mayúsculas de las minúsculas.

Por lo que leí por ahí, el tipo de campo para que eso funcione debe ser varbinary, con eso funciono perfectamente, pero el asunto esta en que yo quiero encriptar la contraseña con AES y para que eso se posible el tipo de campo debe ser blob.

entones, como logro diferenciar mayúsculas de minúsculas al mismo tiempo que encripto la contraseña con AES ?
  #2 (permalink)  
Antiguo 12/08/2010, 19:36
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: reconocer mayusculas y minusculas con ecnriptacion AES

Un campo BLOB por definición diferencia las mayúsculas de las minúsculas porque las letras no las almacena como caracteres, sino por sus valores binarios, y en ese caso la "A" y la "a" tienen diferentes códigos.
En todo caso lo que tienes que hacer, si quieres, es usar la COLLATION utf8_bin en la tabla, ya que de esa forma los campos de caracteres diferenciarán mayúsculas de minúsculas (es la collation usada por MySQL para la tabla de usuarios).
Un tip adicional sería que si quieres que compare los caracteres por su igualdad, diferenciando mayúsculas de minúsculas, bien puedes transformar sus caracteres en hexadecimales. Algo así como:
Código MySQL:
Ver original
  1. SELECT HEX('AAAA')= HEX('AAaA');
Eso da falso, porque la segunda cadena contiene una minúscula, que tiene otro código hexa.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 12/08/2010, 19:53
Avatar de Cero_Cool  
Fecha de Ingreso: abril-2007
Ubicación: Chile
Mensajes: 113
Antigüedad: 17 años
Puntos: 6
Respuesta: reconocer mayusculas y minusculas con ecnriptacion AES

mmmm mira estos son los SP que insertan un nuevo usuario y que generan el login:

BEGIN
insert INTO usuarios
VALUES (user,AES_ENCRYPT(pass,'llave'));
END


y este es que uso para el login

BEGIN
SELECT
CONCAT(UCASE(SUBSTRING(user, 1, 1)),
LCASE(SUBSTRING(user, 2))) as user
from usuarios
where user=userx and AES_DECRYPT (pass,'pochocha') = passx;
END


y como te mendionaba, sigo pudiendo loguer con y sin mayusculas.
  #4 (permalink)  
Antiguo 12/08/2010, 22:04
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: reconocer mayusculas y minusculas con ecnriptacion AES

Intenta hacer lo mismo convirtiendo todo a hexadecimal... o cambiando la collation de la tabla.
El tema es que debes hacer que MySQL haga una comparación binaria. Cualquier otra cosa no dará resultado.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 16/08/2010, 12:34
Avatar de Cero_Cool  
Fecha de Ingreso: abril-2007
Ubicación: Chile
Mensajes: 113
Antigüedad: 17 años
Puntos: 6
Respuesta: reconocer mayusculas y minusculas con ecnriptacion AES

Bueno, encontre mi error finalmente, era una tontera. En realidad todo estaba bien, el tipo de dato era blob en la columa pass de la BD y la encriptacion con AES tambien estaba bien, pero adivinen que....

jajaja el tipo de dato que estaba pasando por el SP era varchar y no blob. XD. y eso era todo, mi SP estaba mal escrito.

Muchas gracias por la informacion gnzsoloyo

Etiquetas: mayusculas, minusculas, reconocer
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:50.