![]() |
Constraint Unique con Columna encriptada
Hola Amigos,
Tengo una tabla con una columna que almacena los datos encriptados utilizando la funcion ENCRYPTBYPASSPHRASE de sql server 2014, el inconveniente que tengo es que a esa columna le aplique una restricción unique para que no se repita el dato, pero no funciona ya que si introduzco varios registros con una cadena 'Juan' ejemplo convert(varchar(800), ENCRYPTBYPASSPHRASE('1111', 'Juan')) varias veces lo permite, la columna esta declarada como varchar(800) . Saludos Cordiales, |
Se supone que entonces guardas la cadena "Juan" de forma cifrada, y cada vez es distinta, por lo que ese campo no puede ser "único".
|
Cita:
Tendré que buscar otra alternativa para validar que no se repitan. entendía que devolverían el mismo valor, debo hacer algo que sin mostrar la info impida duplicados. Gracias por la repuesta, |
Es que entonces será fácil de descifrar. Por ejemplo, usando code64 o algún otro método reversible.
De todas formas, ignoro cómo trabaja ENCRYPTBYPASSPHRASE. |
Cita:
Lo que sucede es que si una tabla tiene cientos, miles o millones de registros es cuesta arriba descifrarlos todos para comparar si se repiten. Para descifrarlo se utiliza otra función de sql server DECRYPTBYPASSPHRASE pero habría que aplicarlo a todos los registros, podría ser en un trigger pero sospecho que podría ralentizar el proceso y también tendría otro inconveniente habría que seder la clave para descifrar al trigger, podría validarlo en el cliente pero no me gusta la idea por si se requiere hacer otros módulos, aunque es una opción ya que en esta tabla no tiene millones de registros. |
Al parecer es un viejo tema de sql server Enforcing a unique constraint
|
De todas formas, hay personas que se llaman igual, no puede ser un campo "único".
|
Cita:
|
No conocemos los requisitos que se exigen para ese dato. Si te sirve eso, pues adelante.
|
^\||/^\||/
|
La franja horaria es GMT +2. Ahora son las 07:42:16. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi