Funcíón para encriptar contraseña:
CREATE FUNCTION [Navegacion].fun_usu_EncriptarContrasenia(@clave VARCHAR(50))
RETURNS VarBinary(8000)
AS
BEGIN
DECLARE @pass AS VarBinary(8000)
------------------------------------
------------------------------------
SET @pass = ENCRYPTBYPASSPHRASE('Encript0110',@clave)-- Encript0110 es la llave para cifrar el campo.
------------------------------------
------------------------------------
RETURN @pass
END
RETURNS VarBinary(8000)
AS
BEGIN
DECLARE @pass AS VarBinary(8000)
------------------------------------
------------------------------------
SET @pass = ENCRYPTBYPASSPHRASE('Encript0110',@clave)-- Encript0110 es la llave para cifrar el campo.
------------------------------------
------------------------------------
RETURN @pass
END
Ejemplo:
INSERT INTO [Navegacion].[nav_usuario] ([id_perfil], [nombre], [contrasenia], [activo], [id_personal])
VALUES (1, 'ismael', [Navegacion].fun_usu_EncriptarContrasenia('Ismael10'), 'True', 5);
Resultado:
Funcíón para desencriptar contraseña:
CREATE FUNCTION [Navegacion].func_usu_DesencriptarContrasenia(@clave VARBINARY(8000))
RETURNS VARCHAR(50)
AS
BEGIN
DECLARE @pass AS VARCHAR(25)
------------------------------------
--Se descifra el campo aplicandole la misma llave con la que se cifro Encript0110
SET @pass = DECRYPTBYPASSPHRASE('Encript0110',@clave)
------------------------------------
------------------------------------
RETURN @pass
END
RETURNS VARCHAR(50)
AS
BEGIN
DECLARE @pass AS VARCHAR(25)
------------------------------------
--Se descifra el campo aplicandole la misma llave con la que se cifro Encript0110
SET @pass = DECRYPTBYPASSPHRASE('Encript0110',@clave)
------------------------------------
------------------------------------
RETURN @pass
END
Ejemplo:
SELECT navUsu.id_perfil, navUsu.nombre,
Navegacion.func_usu_DesencriptarContrasenia(navUsu.contrasenia) as contrasenia
FROM Navegacion.nav_usuario as navUsu
where navUsu.nombre = 'ismael'
Resultado:
Excelente publicación. Ejemplo fácil de discernir. Muchas gracias!
ResponderEliminarperfecto
ResponderEliminarhola
ResponderEliminarHola necesito su ayuda, quiero usar este tipo de encriptacion pero para login desde mi pagina web, como hago la funcion o precedimiento; y como invocarlo al momento de validar mi login
ResponderEliminarhola escribeme al +584242619596
Eliminaro tambien a glemir.cambero@gmail.com
Eliminartomando el mismo ejemplo de nuestro amigo debes hacer el select del login algo como
SELECT navUsu.id_perfil, navUsu.nombre,
Navegacion.func_usu_DesencriptarContrasenia(navUsu.contrasenia) as contrasenia
FROM Navegacion.nav_usuario as navUsu
where navUsu.nombre = 'ismael'
and Navegacion.func_usu_DesencriptarContrasenia(navUsu.contrasenia)='ismael10'
es decir deber usar la funcion dentro del select de tu login, tal cual hicieras una consulta desde la base de datos directo,
Excelente amigo, muchas gracias por el aporte, que genial encontrar sitios donde ofrecen soluciones fáciles de entender
ResponderEliminarHola excelente aporte gracias, me gustaría poder Desencriptar unas claves que ya tengo guardadas en mi base de datos. Trate de usar la función pero me aparece el valor NULL en las contraseñas :( que puedo hacer para poder recuperar esas claves?
ResponderEliminarUna cosa no me queda claro del ejemplo , que es : -- Encript0110 es la llave para cifrar el campo.
Si lo desean hacer desde vb.net este video me funcionó bastante bien: https://www.youtube.com/watch?v=CpSGtkZNvn0
ResponderEliminar