 |
|
 |
Como encriptar texto y variables usando algoritmos estandard como DES o TRIPLEDES
Un articulo que por motivos de longitud del codigo se ha ido retrasando: como encritar usando algoritmos OFICIALES.
Este articulo está dividido en dos partes, encriptar con VB.net y desencriptar con C#
podeis ver la segunda parte aqui:
http://www.devjoker.com/contenidos/Articulos/280/Desencriptar-Texto-y-variables-con-NET-VB-y-C-(segunda-parte).aspx
Para este ejemplo usaremos el algoritmo DES que aunque ya ha sido reventado por superordenadores para una encriptación sencilla vale, si queremos usar un algoritmo más complejo como TRIPLEDES o RINDAJEL basta con cambiar una linea de codigo donde se indica, en el segundo articulo sin embargo usaremos TRIPLE DES
Normalmente los bancos suelen utilizar Triple Des para encritar sus datos lo que da una idea de su seguridad, pero para un aplicativo DES puede ser más que suficiente.
En este articulo enseñaremos encriptación simetrica, es decir la misma clave sirve para encriptar y desencriptar.
'OJO: primero establecemos un imports System.Security.Cryptography. 'Tanto el mensaje como los parametros para la encriptación deben estar ' en formato de Bytes por lo que convertimos Bytes el mensaje inicial Dim messageinicial As String messageinicial = "Santas hormonas Batman que secreto tan enigmático" Dim UE As New UnicodeEncoding()Dim message As Byte() = UE.GetBytes(messageinicial) 'La clase DESCryptoServiceProvider crea el mecanismo de encriptación 'y los paramentros que debemos guardar para poder desencriptar Dim objDES As New DESCryptoServiceProvider 'Si queremos una encriptación más segura simplemente: 'Dim objDES As New TripleDESCryptoServiceProvider 'En vez de depender de un sólo parametro o clave esta encriptación se basa en dos parametros'Una clave Key y un desplazamiento iv Dim iv As Byte() = objDES.IVDim key As Byte() = objDES.Key 'Ahora necesitamos un Buffer o Stream para almacenar la encriptación'Y un objeto ICryptoTransform que encripte los datos' con independencia del algoritmo que usemos pero basado en los parametros ' que hemos creado antes Dim objCrypto As ICryptoTransform = objDES.CreateEncryptor(key, iv)Dim cipherStream As New IO.MemoryStream 'Ahora encriptamos en memoria los datos Dim cryptoStream As New CryptoStream _ (cipherStream, objCrypto, CryptoStreamMode.Write) cryptoStream.Write(message, 0, message.Length) 'Ahora guardamos el mensaje ya encriptado en una variable 'Para desencriptarlo necesitariamos los dos parametros iv y key 'Y usar el mismo algoritmo de encriptado (aparte del mensaje a desencriptar claro está) Dim encryptedMessage As Byte()encryptedMessage = cipherStream.ToArray()
|
Esa sería la forma, luego sólo bastaría guardar en un lugar seguro las claves para poder desencriptar, en este caso hemos dejado que se generen automáticamente ambas claves pero podriamos usar siempre las mismas claves aunque esto es menos seguro.
Cuando creamos un DESCryptoServiceProvider automáticamente se crean las claves (ojo no confundir estas claves con el par de claves publica y privada de la encriptación asimetrica que tiene otro código) pero no es obligatorio usar esas mismas claves, podemos sobreescribirlas si queremos para usar siempre las mismas.
Si os gusta el articulo podeis dejar un mensaje en los comentarios pero recordar que para las preguntas se usan los foros (no es necesario registrarse) no he incluido el codigo en C# pero si alguien lo necesita puede dejar un cometario y en breve pondremos la versión en C#.
Y recordar que la segunda parte del articulo podeis consultarla aqui:
podeis ver la segunda parte aqui:
http://www.devjoker.com/contenidos/Articulos/280/Desencriptar-Texto-y-variables-con-NET-VB-y-C-(segunda-parte).aspx
|
| |
 |
=)
por
Marianita
Respuesta recibida el [19/08/2007 11:30:37]
|
 |
Interesante articulo, explicado con palabras sencillas. Me gustaria ver la vercion en C#.
|
| |
 |
versión en c#
por
aldeamedia
Respuesta recibida el [21/08/2007 07:04:58]
|
 |
Ahora mismo me pillas un poco apurado de tiempo pero si encuentro un rato publico la versión en c#
|
| |
 |
Funcionalidad
por
matu
Respuesta recibida el [26/10/2007 04:41:59]
|
 |
Hola, buen articulo, podrias hacer uno en el cual una vez encriptado el dato este se almacene en SQL Server 2000 y como recuperarlo despues de la DB?. Saludos
|
| |
 |
para matu
por
Aldeamedia
Respuesta recibida el [27/10/2007 11:25:52]
|
 |
El resultado de la función es una cadena de caracteres, puedes insertarlo directamente en SQL 2000 sin problemas , y leerlo después en modo texto desde .net Para hacerlo directamente en SQL 2000 no es posible , aunque con SQL 2005 tienes un montón de funcionalidades para hacerlo. La versión en C# sigo sin ponerme con ella, a ver si un dia me animo.
|
| |
 |
Codigo en C#
por
CodigoX
Respuesta recibida el [12/12/2007 04:03:39]
|
 |
Hola soy pricionte y quiero saber si podria poner el codigo en C# para que pueda aprender un poco mas..
|
| |
 |
Gracias
por
Danilo ramirez
Respuesta recibida el [11/01/2008 12:06:00]
|
 |
en verdad muchísimas gracias, admiro mucho a la gente como tu que siento que lo hacen mas por amor a programar y al saber que por otra cosa, asi que felicidades y gracias de nuevo, pero te faltó poner que imports system.text XD, y yo no sabía eso y tuve que sacarlo XD saludos
|
| |
 |
Hola
por
martinrivero@hotmail.com
Respuesta recibida el [16/01/2008 10:30:50]
|
 |
Hola, Necesito ayuda con un TExto Encriptado, Si alguien me puede ayudar se lo agradeceria, el texto es:
NLAOIE EO PJBOFMMEE RAI URBQELCERS UV MIREOEIAO TE NSVLDE
Gracias .. martinrivero@hotmail.com
|
| |
 |
Desencriptar?
por
Aldeamedia
Respuesta recibida el [22/01/2008 04:22:08]
|
 |
Sin saber el algoritmo desencriptar es francamente dificil
Si tienes suerte habrán usado un algoritmo debil busca algún programa que te saque todas las combinaciones posibles de palabras con ese número de letras
|
| |
 |
Codigo en C#
por
Starcondor
Respuesta recibida el [26/03/2008 06:56:45]
|
 |
//OJO: primero establecemos un using. using System.Security.Cryptography; //...
//Cuerpo del metodo
//Tanto el mensaje como los parametros para la encriptación deben estar // en formato de Bytes por lo que convertimos Bytes el mensaje inicial string messageinicial; messageinicial = "Santas hormonas Batman que secreto tan enigmático";
UnicodeEncoding UE = new UnicodeEncoding(); byte[] message = UE.GetBytes(messageinicial);
//La clase DESCryptoServiceProvider crea el mecanismo de encriptación //y los paramentros que debemos guardar para poder desencriptar
DESCryptoServiceProvider objDES = new DESCryptoServiceProvider(); //Si queremos una encriptación más segura simplemente: //TripleDESCryptoServiceProvider objDES = new TripleDESCryptoServiceProvider();
//En vez de depender de un sólo parametro o clave esta encriptación se basa en dos parametros //Una clave Key y un vector de inicializacion iv byte[] iv = objDES.IV; byte[] key = objDES.Key;
//Ahora necesitamos un Buffer o Stream para almacenar la encriptación //Y un objeto ICryptoTransform que encripte los datos // con independencia del algoritmo que usemos pero basado en los parametros // que hemos creado antes ICryptoTransform objCrypto = objDES.CreateEncryptor(key, iv); MemoryStream cipherStream = new MemoryStream();
//Ahora encriptamos en memoria los datos CryptoStream cryptoStream = new CryptoStream(cipherStream, objCrypto, CryptoStreamMode.Write);
cryptoStream.Write(message, 0, message.Length);
//Ahora guardamos el mensaje ya encriptado en una variable //Para desencriptarlo necesitariamos los dos parametros iv y key //Y usar el mismo algoritmo de encriptado (aparte del mensaje a desencriptar claro está) byte[] encryptedMessage = cipherStream.ToArray();
|
| |
 |
gracias Starcondor
por
aldeamedia
Respuesta recibida el [27/03/2008 04:23:31]
|
 |
Gracias por la traducción Starcondor
|
| |
 |
encriptar y desencriptar con este algoritmo
por
hermez
Respuesta recibida el [09/04/2008 07:44:55]
|
 |
cuando encripto y descencripto me sale el resultado incompleto, por ejemplo: "abcd" ---> se ingresa "???§" ---> resultado encriptado y entrada para desencriptar "ab" ---> resultado
deberia salir "abcd"
que puedo estar haciendo mal,alguien me podria ayudar por favor???
|
| |
 |
no me funciona
por
juan
Respuesta recibida el [28/05/2008 09:32:11]
|
 |
Sigo con la duda anterior de como se hace para almacenar en sql 2000 y recuperarla desencriptandola, gracias..
|
| |
 |
Para preguntar los foros
por
aldeamedia
Respuesta recibida el [28/05/2008 01:45:38]
|
 |
Para preguntar usar los foros esto son sólo comentarios sobre el articulo
|
| |
 |
Como Guardo el dato en la base de datos
por
Yuset Mercado
Respuesta recibida el [26/06/2008 05:15:59]
|
 |
Estoy con aldeamedia, como creo que ese valor en string y almacenar en la db2005.
|
| |
 |
desifrado 3des
por
metal
Respuesta recibida el [06/09/2008 03:34:42]
|
 |
nesecito un programa para descrip 3des de atm tengo todos los key espero por su ayuda gracias
|
| |
 |
Errores con el cod
por
EMGA
Respuesta recibida el [12/09/2008 12:21:56]
|
 |
tengan todos un buen dia,solo queria saer por que al pegar el codigo de c# me aparecen unos errores que tienen que ver con parentecis, comas e iguales y no me deja ejecutar la solucion les anexo los lugares donde aparecen los errores.
cryptoStream.Write(message, 0, message.Length);
messageinicial = "Santas hormonas Batman que secreto tan enigmático";
estas son las lineas en la que me saca error. y los errores dicen Error 1 Invalid token '(' in class, struct, or interface member declaration C:\Documents and Settings\e8\Configuración local\Datos de programa\Temporary Projects\Desemcriptar texto\desemcriptar.cs 44 22 Desemcriptar texto
|
| |
 |
codigo de cesar en VB2005.Net
por
lic_inf_rodolfo@hotmail.com
Respuesta recibida el [30/09/2008 01:31:22]
|
 |
Me podrain ayudar con el cifrado de cesar... necesito realizar un programa en vb2005.net que encripte y desencripte el archivo. agrdeceria que me ayudaran.
|
| |
 |
como`puedo conectarme de un archivo ini
por
Anónimo
Respuesta recibida el [13/11/2008 06:40:48]
|
 |
porfa si alguien pueda ayudarme estoy buscando como puedo conectarme x intermedio de un archivo ini en vb 2005 agradecere su gentileza :)
|
| |
 |
hola soy polo queria darle mi ...
por
Anónimo
Respuesta recibida el [01/02/2009 05:33:46]
|
 |
hola soy polo queria darle mi apoyo y soporte tecnico a metal sobre el encriptado de atm .encripllave48@hotmail.com
|
| |
 |
Encruptar con 3DES
por
Néstor F. Montero
Respuesta recibida el [10/02/2009 08:25:00]
|
 |
Pablo, necesito saber como encryptar con 3DES (esta claro el articulo), pero sin utilizar la key y IV, podré generar la clave 3DES sin necesidad de transimtir las dos claves al receptor? O siempre las debo transmitir para desencryptar ?
|
| |
 |
obtener texto.
por
pablek
Respuesta recibida el [18/05/2009 04:39:30]
|
 |
Para obtener la cadena de caracteres encriptada y meterla en una DB, solo hay que hacer esto:
Dim sCadena as String = UE.GetString(encryptedMessage).ToString()
Saludos.
|
| |
 |
codigo completo
por
rbarzallo
Respuesta recibida el [03/06/2009 03:05:18]
|
 |
Buen Dia
alguien por favor puede incluir el codigo completo para encriptar y desencriptar en c#...
Gracias de Antemano
rbarzallo
|
| |
 |
codigo c#
por
liz
Respuesta recibida el [10/06/2009 09:25:48]
|
 |
hola! me gustaria checar la version en c# es algo interesante esto, gracias...
|
| |
 |
que es la encriptacion de datos
por
ema_julia@hotmail.com
Respuesta recibida el [10/06/2009 04:29:41]
|
 |
hola soy un estudiante unibercitario que necesita saber que es la encriptacion de datos. por lo que lei es desifrar esos codigos de los numeros y letras a cogigos raros pero prefiero una buena definicion.el que me pueda ayudar yo lo ayudare como pueda. mandenlo a mi mail: ema_julia@hotmail.com y desde ya mucha gracias
leaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanlo porfavor y ayudenme con que es la encrptacion de datos
|
| |
 |
que es la encriptacion de datos
por
ema_julia@hotmail.com
Respuesta recibida el [10/06/2009 04:30:14]
|
 |
hola soy un estudiante unibercitario que necesita saber que es la encriptacion de datos. por lo que lei es desifrar esos codigos de los numeros y letras a cogigos raros pero prefiero una buena definicion.el que me pueda ayudar yo lo ayudare como pueda. mandenlo a mi mail: ema_julia@hotmail.com y desde ya mucha gracias
leaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanlo porfavor y ayudenme con que es la encrptacion de datos
|
| |
 |
help me
por
Smile
Respuesta recibida el [19/06/2009 02:18:08]
|
 |
Hola necesito ayuda debo crear un programa en c# qe ingreses una contraseña de 4 numero del 0 al 9 y qee se escriba en asteriscos , y que al final te muestre la contraseña que introduciste
|
| |
 |
Una duda
por
John
Respuesta recibida el [24/08/2009 09:05:40]
|
 |
Disculpa hermano, soy nuevo en esto de la programación, pero me gustaria saber que librerias tengo que importar para que el codigo funciones, ya probe con system.security.criptography, pero nomas me siguen mostrando lineas como de error, cuales deberia importar, gracias por la info, muy buen codigo, pero megustaria verlo funcionando personalmente
|
| |
 |
que paciencia hay que tener pa...
por
paco
Respuesta recibida el [16/09/2009 10:02:07]
|
 |
que paciencia hay que tener para soportar los comentarios de algunos...
a pedir al metro anda!
|
| |
 |
de bolivia
por
ruben zubieta
Respuesta recibida el [25/12/2009 06:58:48]
|
 |
hola buen aporte pero tengo un problema escribi todo el codigo pero me sale q la (el tipo UnicodeEncoding no esta definido) gracias
|
| Añadir comentario ... |
Para preguntar utiliza los foros
|
|

|
Como encriptar texto y variables usando algoritmos estandard como DES o TRIPLEDES |
|
Autor:
Pablo Gumpert Fernandez (aldeamedia)
|
|
Visitas:
34992 |
Fecha de publicación:
14/07/2007 |
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:
94
|
Comentarios:
2
|
Archivo:
Articulos
|
Visitas:
796
|
Comentarios:
2
|
Archivo:
Articulos
|
Visitas:
752
|
Comentarios:
3
|
Archivo:
Articulos
|
Visitas:
657
|
Comentarios:
2
|
Archivo:
Articulos
|
Visitas:
3153
|
Comentarios:
2
|
Archivo:
Articulos
|
Visitas:
14516
|
Comentarios:
7
|
Archivo:
Articulos
|
Visitas:
1483
|
Comentarios:
3
|
Archivo:
Articulos
|
|
Visitas:
692
|
Comentarios:
2
|
Archivo:
Articulos
|
|
Visitas:
369
|
Comentarios:
0
|
Archivo:
Articulos
|
Visitas:
2021
|
Comentarios:
2
|
Archivo:
Articulos
|
|
|
 |
|
 |