Sunteți pe pagina 1din 4

Como encriptar cadenas y campos en SQL server 2005

SQL server 2005 trae soporte para todo tipo de encriptacin, en pero en este articulo nos
centraremos en el ms rpido y sencillo, tambin es el ms inseguro, pero es infinitamente mejor
que nada.
Ante todo un consejo: a ms datos encriptados ms lento y complejo ser
nuestro trabajo y el acceso a los datos, hay que encriptar slo lo necesario.
Supongamos que tenemos una base de datos donde se almacenan todos los
usuarios y sus contraseas y queremos guardar el valor de esas
contraseas encriptadas, podemos usar la nueva funcin
ENCRYPTBYPASSPHRASE
Supongamos que la tabla tenga dos campos user y pass:

INSERT INTO USUARIOS
VALUES ("Aldeamedia",
ENCRYPTBYPASSPHRASE('C1trasea','MiContrasea'))
GO
Si examinamos el contenido de la tabla usuarios veremos que
el campo password contendr un valor similar a este:
0x02000000B351570EC53EE578CB15ED15BEDA340BFE55C44C6C2833F1 es
nuestra contrasea encriptada.
Para poder leerla tendremos que usar la misma contrasea que
usamos para encriptar y la funcin DECRYPTBYPASSPHRASE.

SELECT User, CONVERT(VARCHAR(300),
DECRYPTBYPASSPHRASE('C1trasea',Pass))
FROM USUARIOS

Como digo hay por lo menos tres forms ms de encriptar,
usando claves simetricas, asimetricas y certificados digitales,
pero esta es la ms sencilla y muy eficiente siempre que
mantengamos la contrasea de encriptacin bin segura.
La mejor forma de usar esta encriptacin es mediante
procedimientos almacenados que tomen la contrasea de
encriptacin como parametro.
Dudas? no os canseis de preguntar en los foros de devjoker.
Pablo Gumpert Fernandez



Versin 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 contrasea 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 contrasea aparecera almacenado asi:
0x01002C101B56EA54DB6881F13428E9AAE5E4D0E65D804A703789EA54DB6881F13428E9AAE5E4D0E65D804A703789

--para comparar la contrasea 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 vlido 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 parmetro?



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 cmo tengo que hacer
para modificar la clave considerando que tengo una clase en C# donde creo
parametros con este mtodo: 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 CsarVallejo
Respuesta recibida el [05/08/2008 02:30:16]

S-ar putea să vă placă și