InicioArticulos y noticiasBases de datosProgramaciónForosInternetServiciosContratacionEmail
También puedes ver ...
SQL Server 2008
TransactionScope - Simplificando el trabajo con transacciones.
LinQ To SQL - Un ejemplo sencillo
Formatear números en SQL Server
Leer un campo XML de SQL Server 2005 con C#
Problemas en la instalación de Visual Studio 2008-Visual studio web authoring component
Cómo consumir un Servicio WCF en vez de un Web Service
Redimiento de VS2008
Insertar en una Tabla usando Linq2SQL (Linq To SQL)
Primeros pasos con Linq2SQL (Linq To SQL)

Afiliados
La Web del programador
MundoProgramacion


 

Como encriptar cadenas y campos en SQL server 2005

SQL server 2005 trae soporte para todo tipo de encriptación, en pero en este articulo nos centraremos en el más rápido y sencillo, también es el más inseguro, pero es infinitamente mejor que nada.encriptar con SQL server 2005

Ante todo un consejo: a más datos encriptados más lento y complejo será nuestro trabajo y el acceso a los datos, hay que encriptar sólo lo necesario.

Supongamos que tenemos una base de datos donde se almacenan todos los usuarios y sus contraseñas y queremos guardar el valor de esas contraseñas encriptadas, podemos usar la nueva función ENCRYPTBYPASSPHRASE

Supongamos que la tabla tenga dos campos user y pass:


INSERT
INTO USUARIOS
VALUES ("Aldeamedia",
ENCRYPTBYPASSPHRASE('C1traseña','MiContraseña'))
GO

    Si examinamos el contenido de la tabla usuarios veremos que el campo password contendrá un valor similar a este: 0x02000000B351570EC53EE578CB15ED15BEDA340BFE55C44C6C2833F1 es nuestra contraseña encriptada.

    Para poder leerla tendremos que usar la misma contraseña que usamos para encriptar y la función DECRYPTBYPASSPHRASE.


SELECT
  User, CONVERT(VARCHAR(300),
       DECRYPTBYPASSPHRASE('C1traseña',Pass))
FROM
USUARIOS


    Como digo hay por lo menos tres formás más de encriptar, usando claves simetricas, asimetricas y certificados digitales, pero esta es la más sencilla y muy eficiente siempre que mantengamos la contraseña de encriptación bién segura.

    La mejor forma de usar esta encriptación es mediante procedimientos almacenados que tomen la contraseña de encriptación como parametro.

¿Dudas? no os canseis de preguntar en los foros de devjoker.

Pablo Gumpert Fernandez


 Versión para imprimir  Foros de consulta

 
duda por Lucely
Respuesta recibida el [09/05/2007 06:07:08]
en sql server no existe las funciones que nos das de ejemplo existe otra forma de realizar la encriptacion de cadenas

 
duda por Lucely
Respuesta recibida el [09/05/2007 06:09:36]
en sql server 2003 no existe las funciones que nos das de ejemplo existe otra forma de realizar la encriptacion

 
Tienes que hacerte tú las func... por Devjoker
Respuesta recibida el [20/05/2007 04:23:30]
Tienes que hacerte tú las funciones, o bien un procedure. Todo lo tendar que hacer tu mismo, no hay nada interado.
Un consejo, actualiza a 2005

 
En SQL Server 2000 tambien se puede por chele tobar
Respuesta recibida el [05/06/2007 11:34:29]
Creas la tabla y el campo contraseña lo declaras como varbinary entonces cuando insertar un registro lo haces asi: 

declare @hash varbinary(255)
set @hash=pwdencrypt('123') -->encriptas la valor que estas introduciendo y lo almacenas en la variable @hash
--luego haces la insercion a la tabla
insert into tabla1 values ('hola1',@hash)
--
--luego haces una consulta y el campo contraseña aparecera almacenado asi:
0x01002C101B56EA54DB6881F13428E9AAE5E4D0E65D804A703789EA54DB6881F13428E9AAE5E4D0E65D804A703789

--para comparar la contraseña almacenada con un string es asi:
select pwdcompare('123',0x01002C101B56EA54DB6881F13428E9AAE5E4D0E65D804A703789EA54DB6881F13428E9AAE5E4D0E65D804A703789)
--
--sin son iguales te regresara 1 sino es igual te regresara cero.

Espero que les funcione Bye

 
Referencia al comentario anterior por chele tobar
Respuesta recibida el [05/06/2007 11:39:49]
Si no me entienden el codigo mandeme un correo a cheletobar@yahoo.com.mx y yo con gusto se los mando sin ningun problema; tambien proximamente lo estare  publicando en mi blog http://elbunkerdelprogramador.blogspot.com

Saludos...

 
Pero que muy buena ! Desconoci... por Devjoker
Respuesta recibida el [06/06/2007 12:41:29]
Pero que muy buena ! Desconocia esta funcion. chapo

 
Aunque parece que es de un sol... por Devjoker
Respuesta recibida el [06/06/2007 01:20:45]
Aunque parece que es de un solo para encriptar, es decir, que no puedes obtener el valor original.
Es muy válido para claves, pero para otro tipos de datos (numeros de cuenta, tarjatas de credito ... )no parece util.

 
¿Qué es cada parametro? por Berizzo
Respuesta recibida el [06/06/2007 01:10:11]
¿Para encriptar y desencriptar qué es el primero y el segundo parámetro?

 
Tabla de usuarios existente y con datos por Berizzo
Respuesta recibida el [06/06/2007 02:12:03]
Si ya tengo la tabla de usuarios con datos cargados ¿cómo tengo que hacer para modificar la clave considerando que tengo una clase en C# donde creo parametros con este método: SqlCommand.Parameters.Add(new SqlParameter("@NombreCampo", System.Data.SqlDbType.Int)).Value = valor;?

 
Hola Pues resolvi mi problema ... por Lucely
Respuesta recibida el [10/07/2007 05:29:58]
Hola Pues resolvi mi problema de encriptacion mandando el campo encriptado y para recuperarlo consulto lo q tengo en la BD con lo q pongo en mi campo de texto. antes debí haber encriptado lo q escribí en el campo de texto para poderlo comparar con lo de la base de Datos Gracias por la ayuda

 
urgente por carmen
Respuesta recibida el [02/05/2008 01:49:47]
necesitamos encriptar y desencriptar datos desde una aplicacion de visual 6.0 a sql server 2005 como le hago ayuda por favor

 
Para Carmen por OrLaNdO HeRReRa
Respuesta recibida el [15/05/2008 01:23:11]
Te envio estos Links, a mi me parecieron interesantes........
intenta cambiar a VB 2005 o 2008 es mucho mas actual que el 6.0.
Saludos y espero que te sirva de algo

http://msdn.microsoft.com/es-es/library/ms172831(VS.80).aspx

http://franciscomolina.wordpress.com/2007/11/16/encriptar-en-visual-basic-y-visual-basicnet/

 
pregunta por rappar
Respuesta recibida el [17/06/2008 03:37:44]
En SQL Server 2000 tambien se puede por chele tobar 

ESTA BUENO PERO QUISIERA SABER LA FORMA DE CONVERTIR ESA ENCRIPTACION EN CADENA

 
fdsfsfsdaf por iydsaiudisahdsa
Respuesta recibida el [26/06/2008 01:29:11]
fewufhweaufhajksdhfdsf

 
Error en visual basic 2005 por Ragnarok
Respuesta recibida el [13/07/2008 03:46:58]
porfavor necesito ayuda al desencriptar me sale este error alguien podria ayudarme?
"Argument data type int is invalid for argument 2 of DecryptByPassPhrase function."

 
Duda??? por CésarVallejo
Respuesta recibida el [05/08/2008 02:30:16]
Que viene ha ser el parametro C1traseña, y supongo que el parámetro 'MiContraseña' es la contraseña a insertar, pero no entiendo que viene ha ser 'C1traseña'.


Añadir comentario ... Para preguntar utiliza los foros
Autor:

Título:


Para preguntar utiliza los foros.



 Versión para imprimir

Como encriptar o cifrar cadenas y campos en SQL server 2005 ENCRYPTBYPASSPHRASE y DECRYPTBYPASSPHRASE
Autor: Pablo Gumpert Fernandez (aldeamedia)
Visitas: 10193 Fecha de publicación: 01/09/2006
Pablo Gumpert es formador y consultor oficial de Microsoft para .NET y SQL server.Lleva desarrollando desde hace más de diez años y durante ese tiempo ha trabajado como programador de videojuegos ,analista informático, experto en seguridad, DBA ...
Actualmente se dedica sobre todo a la formación.
Su especialidad es la programación en .NET aunque también es experto en MSSQL Server y en el año 2002 fundó su propia empresa colaboradora de diversos centros partner Microsoft.




18/08/2008 SQL Server 2008
Visitas: 39 | Comentarios: 0 | Archivo: Articulos
Categorias: Transact-SQL
Visitas: 131 | Comentarios: 0 | Archivo: Articulos
Categorias: C#|ADO.NET|LinQ
Visitas: 161 | Comentarios: 1 | Archivo: Articulos
Categorias: Humor
Visitas: 154 | Comentarios: 0 | Archivo: Articulos
Categorias: WCF
Visitas: 123 | Comentarios: 0 | Archivo: Articulos
Categorias: WCF
Visitas: 210 | Comentarios: 0 | Archivo: Articulos
Categorias: ASP.NET
Visitas: 278 | Comentarios: 5 | Archivo: Articulos
Categorias: ASP.NET
Visitas: 4990 | Comentarios: 4 | Archivo: Articulos
Categorias: C#|Transact-SQL|LinQ
Visitas: 602 | Comentarios: 1 | Archivo: Articulos
Categorias: Visual Studio
Visitas: 1402 | Comentarios: 1 | Archivo: Articulos
Categorias: Transact-SQL

Útimos temas recibidos en los foros ...
Y lo mismo en WEB por systemat ... [C#] 1 18/08/2008
Manual del minicom de Linux con fotos. por Meta ... [UNIX] 4 17/08/2008
PROGRAMACION por JUANMA ... [Visual Basic .NET] 1 19/08/2008
Conectar ASP con B.D Informix por Franco ... [ASP] 9 02/05/2007
Codigo salir por Jazmin ... [ASP.NET] 1 18/08/2008
EXPORTAR DATOS A ARCHIVOS PLANOS. por WIX ... [ORACLE] 10 06/08/2007
formulario por artdark ... [C#] 2 04/08/2008
Codigo salir por Jazmin ... [ASP.NET] 0 18/08/2008
cambiar de modo un gried view por ivan ... [ASP.NET] 0 18/08/2008
ayuda urgente porfavor por vicancer ... [ASP.NET] 0 18/08/2008
pollo por hajaj ... [Actualidad] 1 15/08/2008
DIOS TE BENDIGA por El You ... [WIN 98/NT/2000/XP] 1 16/08/2008

Access CGI JSP ORACLE UNIX
Actualidad HTML/DHTML/XHTML LINUX PHP Visual Basic .NET
ASP ISAPI MS DOS Power Builder Visual Basic 6.0
ASP.NET Java mySQL SQL WIN 98/NT/2000/XP
C# JavaScript Opinion SQL Server

devjoker  Te recomendamos además ...
18/10/2005 Enviar emails a través de un servidor SMTP autenticado con Java
19/08/2006 Vitualización. Maquinas Virtuales.
23/12/2007 Primeras impresiones sobre Visual Studio 2008
22/10/2005 El lenguaje SQL    forma parte de...Tutorial SQL
11/09/2006 Trabajar con datos de tipo BLOB en ORACLE
06/07/2007 ¿Qué es el RSS?    forma parte de...Tutorial RSS
26/07/2006 Secuencias    forma parte de...Tutorial PL/SQL
08/09/2007 Funciones en Transact SQL    forma parte de...Tutorial de Transact SQL
12/01/2006 Introducción a PLSQL    forma parte de...Tutorial PL/SQL
08/07/2008 Fiddler - Indispensable para el desarrollo Web

 

Encuesta
Si trabajas con .NET ¿Que entorno utilizas?
[Ver] [Votar]