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: 3194 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: 115 | Comentarios: 3 | Archivo: Articulos
02/02/2010 iPad vs Telesketch
Visitas: 815 | Comentarios: 2 | Archivo: Articulos
Categorias: Humor
Visitas: 777 | Comentarios: 3 | Archivo: Articulos
Visitas: 3194 | Comentarios: 2 | Archivo: Articulos
Categorias: C#
Visitas: 14580 | Comentarios: 7 | Archivo: Articulos
Categorias: C#|Seguridad
Visitas: 1504 | Comentarios: 3 | Archivo: Articulos
Visitas: 700 | Comentarios: 2 | Archivo: Articulos
Visitas: 370 | Comentarios: 0 | Archivo: Articulos
Visitas: 2038 | Comentarios: 2 | Archivo: Articulos
Categorias: C#

Útimos temas recibidos en los foros ...
AYUDA URGENTE PARA CONSULTA ENTRE DOS TABLAS por pepe ... [SQL] 0 15/03/2010
CERTIFICACION CESANTIAS por linda ... [Actualidad] 0 15/03/2010
certificado pensiones horizonte por angela patricia rodriguez ... [Actualidad] 143 26/01/2010
Solicitud certificado de afiliaciones a pensiones y cesantias proteccion por hz ... [Actualidad] 62 10/02/2010
certificado de pensiones del bbva horizonte por danger ... [Actualidad] 127 12/01/2010
certificacion cesantias porvenir por martha perez ... [Actualidad] 6 04/03/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

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 ...
11/09/2006 Trabajar con datos de tipo BLOB en ORACLE
21/07/2006 Funciones integradas de PL/SQL    forma parte de...Tutorial PL/SQL
22/10/2005 Actualización de datos. UPDATE    forma parte de...Tutorial SQL
22/10/2005 Insertar datos. INSERT    forma parte de...Tutorial SQL
10/10/2006 Como conectar a ORACLE con Java
26/07/2006 Secuencias    forma parte de...Tutorial PL/SQL
09/10/2006 Variables y tipos de datos    forma parte de...Tutorial C#
24/05/2006 Cursores Explicitos en PL/SQL    forma parte de...Tutorial PL/SQL
15/07/2008 WCF: netTcpBinding con seguridad tipo Custom
01/01/2005 Introducción a las bases de datos    forma parte de...Iniciación a las bases de datos

 

Encuesta
¿A que perfil te adaptas mejor?




[Ver] [Votar]