Encriptación de campo me devuelve null

21/11/2008 - 14:44 por Pa | Informe spam
Hola a todos, estoy intando encriptar una columna concreta de una tabla de mi
BD.
EL problema es que no consigo introducir en la columna el dato encriptado :( .

Os muestro el código:

OPEN SYMMETRIC KEY Testkey DECRYPTION BY PASSWORD = 'p@ssw0rd';
DECLARE @n nvarchar(128)
DECLARE @b varbinary(180)

SET @n = '123'
SET @b = EncryptByKey(Key_GUID('Testkey'), @n);

UPDATE ENTE
SET cadena_encriptada = EncryptByKey(Key_GUID('Testkey'), @b)
WHERE ID_ENTE = 2646;


el caso es que si acto seguido hago select @b me devuelve algo como
0x008F93702C3AD344B29729780AF5EBDF010000008325DE76B0FC5BE9C515A7B26324 pero
si hago:

SELECT cadena_encriptada FROM ENTE where ID_ENTE = 2646 me devuelve NULL

cadena_encriptada es varbinary(max) y acepta nulls

Gracias por leerme!
 

Leer las respuestas

#1 Carlos Sacristan
21/11/2008 - 14:58 | Informe spam
@b ya está encriptado en el SET, y tú lo estás volviendo a encriptar en la
instrucción UPDATE


Un saludo
-
www.navento.com
Servicios de Localización GPS


"Pa" wrote:

Hola a todos, estoy intando encriptar una columna concreta de una tabla de mi
BD.
EL problema es que no consigo introducir en la columna el dato encriptado :( .

Os muestro el código:

OPEN SYMMETRIC KEY Testkey DECRYPTION BY PASSWORD = '';
DECLARE @n nvarchar(128)
DECLARE @b varbinary(180)

SET @n = '123'
SET @b = EncryptByKey(Key_GUID('Testkey'), @n);

UPDATE ENTE
SET cadena_encriptada = EncryptByKey(Key_GUID('Testkey'), @b)
WHERE ID_ENTE = 2646;


el caso es que si acto seguido hago select @b me devuelve algo como
0x008F93702C3AD344B29729780AF5EBDF010000008325DE76B0FC5BE9C515A7B26324 pero
si hago:

SELECT cadena_encriptada FROM ENTE where ID_ENTE = 2646 me devuelve NULL

cadena_encriptada es varbinary(max) y acepta nulls

Gracias por leerme!

Preguntas similares