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: 3183 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: 111 | Comentarios: 3 | Archivo: Articulos
02/02/2010 iPad vs Telesketch
Visitas: 811 | Comentarios: 2 | Archivo: Articulos
Categorias: Humor
Visitas: 767 | Comentarios: 3 | Archivo: Articulos
Visitas: 3183 | Comentarios: 2 | Archivo: Articulos
Categorias: C#
Visitas: 14571 | Comentarios: 7 | Archivo: Articulos
Categorias: C#|Seguridad
Visitas: 1499 | Comentarios: 3 | Archivo: Articulos
Visitas: 697 | Comentarios: 2 | Archivo: Articulos
Visitas: 369 | Comentarios: 0 | Archivo: Articulos
Visitas: 2034 | Comentarios: 2 | Archivo: Articulos
Categorias: C#

Útimos temas recibidos en los foros ...
certificado de pensiones del bbva horizonte por danger ... [Actualidad] 127 12/01/2010
certificacion cesantias porvenir por martha perez ... [Actualidad] 6 04/03/2010
Solicitud certificado de afiliaciones a pensiones y cesantias proteccion por hz ... [Actualidad] 60 10/02/2010
cerificado fondo horizonte de pensiones y cesantias por carlos fideligno torres herrera ... [Actualidad] 148 18/01/2010
certificado de afiliacion por EDDY ... [Actualidad] 0 14/03/2010
Cursores por nopodes ... [ORACLE] 0 14/03/2010
peticion urgente mi nombre es juan pablo osorio cardona cc 71115218 por juancho ... [Actualidad] 0 14/03/2010
peticion por juancho ... [Actualidad] 0 14/03/2010
estrato de pencion por carlos antonio mateus gomez ... [Actualidad] 0 14/03/2010
quiero aprender c# por alcapego ... [C#] 4 16/02/2008
certificado pensiones horizonte por angela patricia rodriguez ... [Actualidad] 140 26/01/2010
certificado de penciones y cesantias por fredy ... [Actualidad] 2 29/01/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 ...
31/03/2006 Tipos de datos en PL/SQL    forma parte de...Tutorial PL/SQL
12/01/2008 SQL dinámico en Transact SQL    forma parte de...Tutorial de Transact SQL
09/11/2006 Interfaces    forma parte de...Tutorial C#
06/11/2007 Cursores en Transact SQL    forma parte de...Tutorial de Transact SQL
19/09/2007 Triggers en Transact SQL    forma parte de...Tutorial de Transact SQL
31/03/2006 Fundamentos de PL/SQL    forma parte de...Tutorial PL/SQL
01/01/2005 Introducción a las bases de datos    forma parte de...Iniciación a las bases de datos
20/03/2008 Funciones integradas de Transact SQL (I)    forma parte de...Tutorial de Transact SQL
31/03/2006 Operadores en PL/SQL    forma parte de...Tutorial PL/SQL
08/09/2007 Funciones en Transact SQL    forma parte de...Tutorial de Transact SQL

 

Encuesta
¿A que perfil te adaptas mejor?




[Ver] [Votar]