Encriptar Campo

04/10/2004 - 16:24 por SRenau | Informe spam
Hola,

Desearia poder encriptar un campo como podria ser el DNI
del personal paara poder recuperarlo más tarde.

¿Que opciones me proponeis?

Gracias.
 

Leer las respuestas

#1 Isaías
04/10/2004 - 17:08 | Informe spam
Si cuenta con version SQL2000, esto con seguridad le
ayudara:

CREATE VIEW Letras(Caracter)
AS
SELECT CHAR(RAND()*77+23)


CREATE FUNCTION fn_Encrypt(@Password varchar(128))
RETURNS VARCHAR(128)
WITH ENCRYPTION
AS
BEGIN
DECLARE @x INT,
@EncryptedPassword VARCHAR(128)
SELECT @x=1, @EncryptedPassword=''
WHILE @x<len(@Password)+1
BEGIN
dinamico. Mejor seria 128 - @x?
SET @EncryptedPassword=@EncryptedPassword+CHAR(ascii
(substring(@Password,@x,1))+@x)
SET @EncryptedPassword=@EncryptedPassword+(SELECT
Caracter FROM Letras)
SET @x=@x+1
END
RETURN @EncryptedPassword
END

CREATE FUNCTION fn_Decrypt(@Password VARCHAR(128))
RETURNS VARCHAR(128)
WITH ENCRYPTION
AS
BEGIN
DECLARE @x INT,
@DecryptedPassword VARCHAR(128)
SELECT @x=1,@DecryptedPassword=''
WHILE @x<len(@Password)+1
BEGIN
SET @DecryptedPassword=@DecryptedPassword+char(ascii
(substring(@Password,@x,1))-(@x+1)/2)
SET @x=@x+2
END
RETURN @DecryptedPassword
END


SELECT dbo.fn_Encrypt('superman')
-
t#wLsi.w,shKvK

(1 row(s) affected)

SELECT dbo.fn_Decrypt('t#wLsi.w,shKvK')

superman

(1 row(s) affected)

Preguntas similares