 |
|
 |
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.
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
|
| |
 |
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'.
|
| |
 |
Repuesta
por
Repuesta
Respuesta recibida el [18/09/2008 12:02:33]
|
 |
'C1traseña' es una clave publica que se conoce y que siver como semilla para el cibrador genere un HASH, puede ser caulquier palabra, en el caso de usar una tabla de usuarios y claves (usuarioID, Clave), yo podria en el campo 'C1traseña' el usuarioID, ya que este lo tengo a la mano y por cada usuario variaria, pero siempre seria el mismo para este (siempre se tendra un usuarioID diferente para cada persona, pero el usuarioID una vez creadado nunca cambia).
INSERT INTO USUARIOSVALUES ("Aldeamedia", ENCRYPTBYPASSPHRASE('Aldeamedia','MiContraseña'))GO
|
| |
 |
GRacias
por
Daniel Gomez
Respuesta recibida el [08/10/2008 07:07:55]
|
 |
gracias me salvaron la vida
|
| |
 |
como hacer el store procedure
por
cesar
Respuesta recibida el [10/11/2008 11:38:52]
|
 |
mi duda es que como ago el procedure para la encriptacion ps esque iio estudio sql 2005 conectado a visual c# 2005 pero no puedo encriptar aun
|
| |
 |
datos encryptados
por
chasca
Respuesta recibida el [11/11/2008 07:53:36]
|
 |
como hago para insertar en un procedure mi tabla usuarios me sale el error: Implicit conversion from data type varchar to varbinary is not allowed. Use the CONVERT function to run this query.
|
| |
 |
urgente!!.necesito el codigo de este algoritmo de encriptacion
por
carlos
Respuesta recibida el [11/11/2008 05:30:23]
|
 |
Paso 1: contraseña - 1234 Paso 2: sacar longitud- 4 Paso 3: sacar código ASCII Paso 3: Tomar la cadena de la contraseña y la vamos a multiplicar por la longitud de la misma y por el primero y ultimo carácter de la contraseña (1234)*4*1*4 Paso 4: lo que resulte lo vamos a multiplicar por el número original y el resultado que arroje le vamos a restar el doble del original. (19744*1234-2468)= 24361628 Paso 5: Multiplicar por dos el resultado del paso 4 para sacar el residuo del numero con el que trabajamos. (24361628*2)=48723256 Paso 6: Repetir paso 3. Paso 7: Repetir paso 4. Paso 8: contraseña encriptada ( ]9U0 )
|
| Añadir comentario ... |
Para preguntar utiliza los foros
|
|

|
Como encriptar o cifrar cadenas y campos en SQL server 2005 ENCRYPTBYPASSPHRASE y DECRYPTBYPASSPHRASE |
|
Autor:
Pablo Gumpert Fernandez (aldeamedia)
|
|
Visitas:
12946 |
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. |
|
Visitas:
302
|
Comentarios:
0
|
Archivo:
Articulos
|
Visitas:
137
|
Comentarios:
0
|
Archivo:
Articulos
|
Visitas:
101
|
Comentarios:
5
|
Archivo:
Articulos
|
Visitas:
429
|
Comentarios:
4
|
Archivo:
Articulos
|
Visitas:
1448
|
Comentarios:
6
|
Archivo:
Articulos
|
Visitas:
238
|
Comentarios:
0
|
Archivo:
Articulos
|
Visitas:
611
|
Comentarios:
0
|
Archivo:
Articulos
|
Visitas:
2573
|
Comentarios:
4
|
Archivo:
Articulos
|
Visitas:
463
|
Comentarios:
0
|
Archivo:
Articulos
|
Visitas:
1072
|
Comentarios:
0
|
Archivo:
Articulos
|
|
|
|
 |
| Encuesta |
|
¿A que perfil te adaptas mejor? |
|
|
|
|
|
|
|
|
 |