InicioArticulos y noticiasBases de datosProgramaciónForosInternetServiciosContratacionEmail
También puedes ver ...
SubVersion y Visual Studio
TripleDES - Un ejemplo practico en C#
Insertar una marca de agua en documentos PDF
Serialización: XmlSerializer y BinaryFormater
Handler para manipular imagenes
Conversiones de tipos personalizadas (VB y C#)
Compresión por gzip y deflate
La página Web que está abriendo contiene tanto elementos seguros como no seguros.
Cómo insertar un fichero .xml en un campo de tipo XML de SQL server 2005 o 2008
Comparativa de sentencias VB.Net vs C#


Encriptación con AES Rijndael - Ejemplo

En devjoker ya hemos publicado algunos ejemplos de criptografía, pero nos faltaba un ejemplo con Advanced Encryption Standard (AES), también conocido como Rijndael. Se le considera el algoritmo de cifrado más seguro de la actualidad.

Aqui os dejo un ejemplo de la implementacion de este algoritmo es C#. Si ya habeis leido los articulos sobre TripleDES el código os resultará muy familiar, ya que la única variacion es el proveedor utilizado para la encriptacion - por este motivo no explicaremos el código, quien necesite una aclaración que revise el articulo anterior.

Este es el código:

 

using System;

using System.Collections.Generic;

using System.Text;

using System.Security.Cryptography;

using System.IO;

 

namespace AESSample{

 

class CriptoUtil

{

byte[] _key;

byte[] _iv;

 

public CriptoUtil()

{

_key =

Encoding.ASCII.GetBytes("12EstaClave34es56dificil489ssswf");

_iv =

Encoding.ASCII.GetBytes("Devjoker7.37hAES");

}

 

public string Encrit(string inputText)

{

byte[] inputBytes = Encoding.ASCII.GetBytes(inputText);

byte[] encripted;

RijndaelManaged cripto = new RijndaelManaged();

using (MemoryStream ms =

new MemoryStream(inputBytes.Length ))

{

using (CryptoStream objCryptoStream =

new CryptoStream(ms,

cripto.CreateEncryptor(_key, _iv),

CryptoStreamMode.Write))

{

objCryptoStream.Write(inputBytes, 0, inputBytes.Length);

objCryptoStream.FlushFinalBlock();

objCryptoStream.Close();

}

encripted = ms.ToArray();

}

return Convert.ToBase64String(encripted ) ;

}

 

public string Desencrit(string inputText)

{

byte[] inputBytes = Convert.FromBase64String(inputText);

byte[] resultBytes = new byte[inputBytes.Length];

string textoLimpio = String.Empty;

RijndaelManaged cripto = new RijndaelManaged();

using (MemoryStream ms = new MemoryStream(inputBytes ))

{

using (CryptoStream objCryptoStream =

new CryptoStream(ms, cripto.CreateDecryptor(_key, _iv),

CryptoStreamMode.Read ))

{

using (StreamReader sr =

new StreamReader(objCryptoStream, true))

{

textoLimpio = sr.ReadToEnd();

}

}

}

return textoLimpio;

}

} }

 Por supuesto si queremos que la implementacion sea realmente segura, debemos almacenar las claves de encritpacion (_key, _iv) de forma segura, y no "cinceladas" en el código.

Saludos, DJK

 

 


 Versión para imprimir  Foros de consulta

 
WWW.LOSA.COM por LOLA
Respuesta recibida el [14/06/2009 04:08:35]
POE FABOR ENTRE ENMI POGRAMA Y CON LOLA CONOSERAS EL MUNDO

 
_AES_ por Mihai Mosor
Respuesta recibida el [24/12/2009 08:35:28]
Muy buena aportación DJK ;). 
El algoritmo es muy bueno, los belgas fueron muy listos a la hora de crearlo. Se trata de una encriptación simetrica, de re+organización en una matriz, a base de una clave, las palabras que queramos encriptar.
Donde estoy, también lo utilizan, porque tiene mucha fama y es realmente fácil de utilizar . ;)
Gracias y un saludo,
Mihai.


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

Título:


Para preguntar utiliza los foros.



 Versión para imprimir

Encriptación con AES Rijndael - Ejemplo
Autor: Pedro Herrarte Sánchez
Visitas: 3174 Fecha de publicación: 24/12/2009
Pedro Herrarte, es consultor independiente, ofreciendo servicios de consultoría, análisis, desarrollo y formación.

Posee mas de diez años de experiencia trabajando para las principales empresas de España.

Es especialista en tecnologías .NET, entornos Web, bases de datos (SQL Server y ORACLE) e integración de sistemas.

Es experto en desarrollo (C#, ASP.NET, VB.Net, T-SQL, PL/SQL, , ASP, CGI , C, Pro*C, Java, Essbase, Vignette, PowerBuilder y Visual Basic ...) y bases de datos (SQL Server y ORACLE).

Es fundador, diseñador y programador de www.devjoker.com.




Visitas: 106 | Comentarios: 3 | Archivo: Articulos
02/02/2010 iPad vs Telesketch
Visitas: 806 | Comentarios: 2 | Archivo: Articulos
Categorias: Humor
Visitas: 762 | Comentarios: 3 | Archivo: Articulos
Visitas: 3174 | Comentarios: 2 | Archivo: Articulos
Categorias: C#
Visitas: 14553 | Comentarios: 7 | Archivo: Articulos
Categorias: C#|Seguridad
Visitas: 1492 | Comentarios: 3 | Archivo: Articulos
Visitas: 695 | Comentarios: 2 | Archivo: Articulos
Visitas: 369 | Comentarios: 0 | Archivo: Articulos
Visitas: 2034 | Comentarios: 2 | Archivo: Articulos
Categorias: C#

Útimos temas recibidos en los foros ...
devolver consulta en form builder de oracle con like por cesar10lb ... [ORACLE] 0 13/03/2010
certificado por jhon jairo vargas ... [Actualidad] 0 13/03/2010
certificado de cesantias horizonte por yeimmy ... [Actualidad] 4 13/03/2010
solicito certificado de pensiones y sesantias para laborar por maria eugenia garcia m. ... [Actualidad] 0 13/03/2010
certificado de fondos de pensiones horizonte por mona ... [Actualidad] 6 03/03/2010
certificado pensiones por nelly moreno ... [Actualidad] 0 13/03/2010
certificado de pensiones del bbva horizonte por danger ... [Actualidad] 125 12/01/2010
cerificado fondo horizonte de pensiones y cesantias por carlos fideligno torres herrera ... [Actualidad] 147 18/01/2010
certuficado de afiliacion a porvenir por ede ... [Actualidad] 6 05/02/2010
certificado pensiones horizonte por angela patricia rodriguez ... [Actualidad] 136 26/01/2010
Solicitud certificado de afiliaciones a pensiones y cesantias proteccion por hz ... [Actualidad] 59 10/02/2010
necesito certificado de afiliacíon a pensiones por jelo ... [Actualidad] 0 12/03/2010

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 ...
21/07/2007 Insertar datos en Transact SQL    forma parte de...Tutorial de Transact SQL
01/04/2006 Estructuras de control en PL/SQL    forma parte de...Tutorial PL/SQL
02/01/2007 Mejoras en la manipulación de delegados    forma parte de...Tutorial C#
31/03/2006 Operadores en PL/SQL    forma parte de...Tutorial PL/SQL
22/10/2005 Actualización de datos. UPDATE    forma parte de...Tutorial SQL
30/01/2008 Nueva galeria de iconos
16/10/2006 Redefinición de operadores    forma parte de...Tutorial C#
01/06/2007 Autogenerado ESSALUD (Solución)
04/03/2006 Bloques PL/SQL    forma parte de...Tutorial PL/SQL
08/03/2007 Cambiar el nombre del servidor SQL Server

 

Encuesta
¿A que perfil te adaptas mejor?




[Ver] [Votar]