sábado, 11 de agosto de 2012

Comunicación Efectiva

educacion-formas-ensenar_1_1032258

Esta es una de las habilidades que los ingenieros de sistemas mas necesitan desarrollar, como bien sabemos, no es precisamente una de las áreas en que se tiene mas fortaleza, y no esta en el listado de materias de estudio en las universidades, pero es una fortaleza indispensable, máxime cuando se ha alcanzado cierto nivel en el que se requiere una constante interacción con usuarios o en mi caso como Arquitecto de Software, que es necesario comunicar de forma efectiva temas que suelen revestir un alto nivel de complejidad a un publico con perfiles muy variados.

La comunicación efectiva consiste en darse a entender correctamente, ya sea formalmente o combinado con gestos corporales adecuados. La idea es que el receptor del mensaje comprenda el significado y la intención de lo que se está comunicando.

Debido a que en toda forma de comunicación se pierde algo del significado al transmitir el mensaje, la comunicación efectiva busca eliminar o minimizar esta perdida.

Desde esta perspectiva, debemos empezar por definir que información queremos transmitir, así en nuestro caso en general se trata de información técnica, la cual se representa a través de modelos, haciendo uso de los diferentes estándares existentes para este fin.

QueSeComunica

De esta forma nuestro papel es comunicar a los interesados la información contenida en estos modelos, pero no solo eso, es importante estar en capacidad de transmitir más cosas que solo información, es necesario que la audiencia logre sentir confianza en nosotros, y que vean la calidad de nuestro trabajo, se busca causar un impacto positivo en sus sentimientos, emociones, juicios y motivaciones.

Esta capacidad de transmitir ese algo más es la que permite potenciar la comunicación de la información, de igual forma que inhibe cuando no se hace de forma adecuada.

Para planear una buena presentación, es necesario que nos planteemos las siguientes preguntas:

1. A que publico va orientada la presentación y que esperan de ella?

Es decir cuales son los stakeholders a los que nos vamos a dirigir, cuales son los perfiles de estos, cuales son los roles que juegan dentro del proyecto o la empresa y cuales son las expectativas que estos tienen del proyecto.

Esto es de vital importancia pues nos permite definir con claridad la información que debemos manejar y los modelos que vamos a usar en nuestras presentaciones.

2. Que características tiene el modelo?

Es importante hacer una adecuada selección de los modelos o de la información a presentar, a menudo las personas a quienes nos dirigimos suelen tener perfiles muy diversos y no siempre tienen conocimientos sobre lenguajes de modelado, así que es importante usar modelos que sean lo mas básico posibles pero que permitan transmitir de forma adecuada la información.

3. Cuanto tiempo dura la presentación?

El tiempo es un factor importante, debido a que los asistentes tienen diferentes roles, es lógico que tengan expectativas diferentes, por este motivo la presentación suele estar dividida en partes orientadas a cada rol, y por ello es importante manejar el tiempo e indicar al inicio cuanto toma cada parte con el fin de que el asistente este informado de cuanto tiempo debe esperar antes de que se trate el tema que le atañe, esto genera una sensación de confort en el asistente.

4. Cuales son los medio disponibles?

Definir los recursos disponibles para nuestra presentación es importante pues nos permite tener mayor control, conocer el lugar donde se llevara a cabo la reunión nos permitirá sentirnos mas seguros, ya que podremos definir previamente el área donde nos vamos a desenvolver, de la misma forma es interesante saber si contamos con proyector y de ser posible hacer una previsulización de la misma para detectar oportunidades de mejora.

También es bueno contar con un tablero y los recursos necesarios para apoyar nuestra presentación.

Un aspecto muy recomendable es contar con un apuntador, o media pointer, ya que brinda unas facilidades increíbles de manejo que de otra forma seria imposible de alcanzar.

5. Quien va a hacer la presentación?

En muchas ocasiones quien lleva cabo los modelos no es la persona que va a realizar la presentación, e incluso en algunas ocasiones quien presenta no es quien elabora el material de la presentación, así que es importante que la persona que va a realizar la exposición tenga las habilidades de comunicación necesarias, pero que además tenga un conocimiento adecuado del negocio, pues como bien saben cada modelo de negocio tiene su lenguaje propio, y es de vital importancia que el orador maneje este a la perfección, ya que las fallas en estos aspectos generan una perdida de credibilidad que puede echar abajo todo el trabajo realizado, y posiblemente echar a perder la oportunidad de negocio con ese cliente.

6. Como hacer el Feedback?

Este es un asunto importante, ya que por este medio se recopila información de los efectos que causa su mensaje en el Receptor. Esta información es muy útil y permite al Emisor conocer si su mensaje ha sido correctamente entendido y la repercusión que el mismo está teniendo en el Interlocutor. De esta forma puede adaptarse de una manera más efectiva a las necesidades del sujeto.

Una vez definidos los puntos anteriores, es necesario definir algunas estrategias básicas, las cuales van orientadas en su mayoría al material de apoyo usado por el expositor.

Como primera medida es necesario definir adecuadamente el mensaje, la idea que se quiere transmitir con la presentación.

Se debe definir la estructura global de la presentación, la agenda, tiempo, medios, etc. En este aspecto es importante resaltar el incluir la agenda en nuestra presentación, indicando los tiempo que toma tocar cada tema es muy importante, además que se debe dar una introducción global de cada tema para poner en contexto a los asistentes, de manera que estos se ubiquen en el tema de su interés y tengan idea del tiempo que deben esperar para que se toque el tema que les atañe. Este es un gesto bien recibido por los espectadores, ya que les transmite la tranquilidad de saber como manejar su tiempo.

Otro punto importante es la maquetación de la presentación, es decir el manejo de la distribución en la presentación, el uso de los colores y formas, y las animaciones, que deben usarse con prudencia para no incomodar al público.

El último punto a tener en cuenta es el lenguaje grafico, el cual debe cumplir al menos con las siguientes características:

· Consistencia: debe ser uniforme, se deben representar conceptos similares con formalismos similares, es decir si un proceso se representa usando un rectángulo con las equinas redondeadas, entonces los subproceso deben usar una representación similar a la del proceso pero adicionando alguna característica que le diferencia.

· Fácil de entender: debe ser intuitivo y tener un adecuado uso de la abstracción, se debe buscar que la persona pueda reconstruir el modelo en su cabeza con gran facilidad a partir del modelo visualizado.

· Estética: debe resultar agradable a la vista.

· Compatibilidad: se debe buscar una cercanía de la representación a los estándares reconocidos para expresar los mismos conceptos.

Si se tienen en cuenta esos tips al momento de realizar las presentaciones, de seguro que los resultados serán muy favorables.

Seria recomendable en todo caso tomar algún curso de Comunicación, e incluso técnica vocal, que de seguro va a permitirles mejorar mucho las habilidades comunicativas.

jueves, 2 de agosto de 2012

Personalizar el plug-in de Búsqueda de Google en Firefox 14.0.1

Muchos habrán notado que con la nueva actualización de Firefox a la versión 14.0.1, se ha implementado la búsqueda en Google usando el protocolo HTTPS, genial en cierta forma, pero si cuentan con restricciones en la red como me sucede a mi, resulta en realidad un poco molesto, ya que solo vamos a obtener un mensaje de error.

En vista de esta situación, me puse a la búsqueda de una solución a dicha limitación, después de unos cuantos minutos pensando las cosas, recordé que estos plug-ins consisten en archivos Xml con la información del proveedor de búsqueda, así que me dispuse a verificar la situación.

Efectivamente, en mi caso se encuentran ubicadas en la ruta:

C:\Program Files (x86)\Mozilla Firefox\searchplugins

Una vez ubicados en dicha carpeta, se pueden observar los plug-ins disponibles.

SearchPlugin1

El primer paso consiste en sacar una copia del plug-in de Google, por si acaso. En mi caso he creado una copia llamada google.xml_ssl. Ahora procedemos a verificar el contenido del XML en un editor de texto.

SearchPlugin2

SearchPlugin3

Al revisarlo se pueden ver las Url que debemos modificar.

SearchPlugin4

Como ven es solo remplazar https por http, guardar los cambios y reiniciar Firefox.

lunes, 23 de julio de 2012

Personalizando el control Menú de ASP Net - Modificando la Flecha

En algunas ocasiones se presentan proyectos que no revisten una complejidad alta, por tanto se planean en tiempo record, además de tener limitaciones de presupuesto, este tipo de situaciones no permite recurrir a nada que revista complejidad en su implementación, es en esos casos cuando se recurre al uso de los controles básicos que trae ASP Net.

En esta ocasión, se hizo necesario el uso del control Menú que viene de serie con Visual Studio, lo particular de la situación es que según el esquema de colores que se planteo suponía un pequeño problema, y es que la flecha que usa el control Menú para indicar que un elemento tiene subelementos es de color negro por defecto.
Manos a la obra:

Si bien no hay mucha información al respecto, la susodicha flecha resulto ser un recurso incrustado en el control, de manera que el primer paso es conseguir la imagen original para conocer sus características.
SaveArrow

Una vez hemos guardado copia de la imagen procedemos a revisar las propiedades de esta con el fin de obtener mas información sobre ella.

PropiedadesMenuArrow

Como se puede observar se trata de un GIF de 15 x 15 pixeles, con profundidad de 8 bits. El siguiente paso consiste en crear una imagen totalmente transparente para el menú estático, y modificar la flecha existente cambiando su color de negro a gris claro para los ítems dinámicos.

En este punto es necesario el uso de alguna herramienta de diseño grafico, en mi caso usare GIMP, que además de ser Open Source es sencillo de usar e instalar, ya que no dispongo de las horas necesarias para la instalación que requeriría otros productos.

Abrimos GIMP y creamos una nueva imagen, en la ventana de propiedades definimos las opciones de la siguiente forma:

CrearNuevaImagen
ImagenNueva

Una vez tenemos nuestra transparencia, la exportamos como GIF.

Transparencia
Exportar

Ahora solo resta cambiar el color de la flecha existente para que quede de color gris, para ello abrimos la imagen en GIMP, ampliamos la imagen para poder manejarla mejor, seleccionamos la herramienta de rellenado Relleno , seleccionamos el color blanco.
SelColor

Ahora, señalamos el área de color negro y voila… ya quedo… se ve gris gracias al ajuste de Umbral.

GrayArrow
Umbral

De esta forma ya tenemos listas nuestras imágenes, ahora procedemos a vincularlas a nuestro menú, tal como se ve a continuación:

   1: <asp:Menu ID="Menu" CssClass="menu" runat="server" DynamicHorizontalOffset="2" Orientation="Horizontal"
   2: StaticSubMenuIndent="10px" DynamicPopOutImageUrl="~/Images/MenuArrowGrey.gif"StaticPopOutImageUrl="~/Images/Trasparency.gif">
   3: <StaticSelectedStyle CssClass="staticSelectedStyle" />
   4: <StaticMenuItemStyle CssClass="staticMenuItemStyle" />

Para ello basta con asignar a las propiedades StaticPopOutImageUrl y DynamicPopOutImageUrl las rutas de las imágenes y ya tenemos el menú de acuerdo a los requisitos.

CustomMenu


Como se puede observar, los ítems estáticos ya no tienen la flecha, y los subitems la tienen de color gris, tal como requería.

El proceso es en realidad sencillo, la manipulación de las imágenes no representa mayor dificultad, y me permite alcanzar mis objetivos sin mayor dificultad.

Arquitectura Empresarial

Pues bien, como ya había mencionado en algún momento, tenía planeado tratar temas de alto nivel, tal como lo es la Arquitectura Empresarial.

Todo parte de un problema:

Debido a la diversificación de los mercados, la globalización, la masificación del uso de internet entre otras cosas, los modelos de negocio han cambiado mucho con respecto a lo que eran antiguamente, y con ello han surgido nuevas y muy variadas necesidades de negocio, lo que ha llevado a que en la actualidad los sistemas además de ser muy heterogéneos, deben funcionar de manera integrada para poder soportar los requerimientos de los negocios, sus clientes y socios, y de igual forma hace necesario el acceso rápido y fiable a la información para la toma de decisiones eficiente.

La velocidad a la que el mundo cambia hace que los modelos de negocio cambien y evolucionen a ritmos inimaginables, y prácticamente impredecibles, esto supone un gran problema para las áreas de TI, ya que estas áreas terminan siendo meramente reactivas a las necesidades del negocio, dando como consecuencia que todo se maneje, diseñe y decida con un alto nivel de informalidad, lo que significa que no existe un plano del negocio y menos aun de su relación con TI.

Esto se convierte en un gran problema, pues las empresas pierden la ventaja competitiva, ya que la falta de planeación hace cada vez más difícil que las plataformas y aplicaciones existentes evolucionen al ritmo que los negocios lo requieren.

La solución:

En este contexto se hace necesario establecer mecanismos que permitan coordinar las decisiones para obtener la ventaja competitiva antes mencionada.

Con la aparición de la empresa extendida, empresa virtual, y en general las nuevas formas organizativas que están surgiendo, entender la naturaleza y composición de las operaciones empresariales, que atraviesan los límites de la organización, se convierte en un prerrequisito para iniciar y mantener las relaciones de negocio. También se hace necesario el modelado de procesos de negocio para representar y entender las operaciones de la empresa.

La necesidad de la Integración Empresarial y los modelos de empresa surgen a partir de estas necesidades.

Es acá donde entra la AE (Arquitectura Empresarial). La AE, se basa en un modelo multidimensional de la organización y su relación con TI, que permita planear, estimar, simular, tomar decisiones, analizar, etc.

La AE identifica los componentes principales de la organización y la forma como estos interactúan para alcanzar los objetivos del negocio. Actúa como fuerza integradora entre aspectos de planificación del negocio, aspectos de operación de negocio, aspectos tecnológicos, etc.

Debido a la complejidad de una empresa, se hace difícil, por no decir imposible, su estudio bajo una única perspectiva, por lo que no hay una única arquitectura de empresa, sino que ésta se definirá en función de las arquitecturas que la componen.

Desde este punto de vista, la AE esta comprendida por las siguientes arquitecturas:

Arquitectura de Negocio

Arquitectura de Información

Arquitectura de Aplicaciones

Arquitectura de Infraestructura

Estas a su vez se relacionan entre si, de modo que a través de ellas existe una trazabilidad que nos permite ver la alineación existente entre el negocio y TI.

AE

Hasta este punto podemos concluir que debido a que TI juega un papel fundamental en la capacidad de competencia de las empresas, es necesario entender el negocio para poder construir y mantener una infraestructura de TI que lo soporte, de manera que el negocio y TI deben estar alineados en todo momento.

Posteriormente trataremos en detalle dichas vistas o arquitecturas y la forma como estas se relacionan.

miércoles, 4 de julio de 2012

Brindando seguridad a nuestras aplicaciones

Son muchas las ocasiones en que necesitamos implementar mecanismos de seguridad confiables en nuestras aplicaciones, sin que sean excesivamente complicadas o difíciles de desarrollar. En esta ocasión voy a implementar una solución basada en hash, usando para ello las utilidades de encripción aportada por el Framework de .NET

Este tipo de mecanismos ofrecen un buen nivel de seguridad a nuestras aplicaciones, ya que las hash son de tamaño fijo, y pueden representar una gran cantidad de datos. Sumado a ello cualquier cambio que se realice en los datos ocasionan grandes cambios imprevisibles en el valor hash

En esta guía utilizaremos el algoritmo SHA1, el cual es de 160 bits. Este mecanismo esta pensado como una solución para manejar las contraseñas de usuarios, pues se buscaba un mecanismo que garantizara que no hubiese forma de descifrar las contraseñas.

Así en lugar de almacenar una contraseña cifrada, se almacena la hash de dicha contraseña. Esto significa que la contraseña es irrecuperable, lo que garantiza un buen nivel de seguridad pues aun cuando la información sea sustraída no hay posibilidad alguna de recuperar las contraseñas.

Servicios de Criptografía

En .Net los servicios de criptografía están definidos en el namespace System.Security.Cryptography, el cual provee mecanismos de codificación y decodificación de datos, además de otras operaciones tales como hashing, generación números aleatorios, y mensajes de autenticación.

Manos a la obra

El siguiente es el método que obtiene la hash:

   1: public string GetSHA1(string data)
   2: {
   3:     SHA1CryptoServiceProvider Sha1 = new SHA1CryptoServiceProvider();
   4:     Byte[] buffer;
   5:  
   6:     //Convertimos la cadena en un arreglo0 de bytes
   7:     buffer = Encoding.ASCII.GetBytes(data);
   8:  
   9:     //Obtenemos la hash, y la codificamos en base 64 para evitar caracteres no soportados
  10:     return Convert.ToBase64String(Sha1.ComputeHash(buffer));
  11: }

Como se puede ver es bastante sencillo de implementar, si se desea elevar el nivel de seguridad se puede cifrar la contraseña antes de calcular la hash. En mi caso esta ultima ha sido la solución implementada.


Etiquetas de Technorati: ,,,

Cifrado con Triple DES


Triple DES es el algoritmo que hace triple cifrado del DES, también es conocido como TDES o 3DES, fue desarrollado por IBM en 1978.

Cuando se descubrió que una clave de 56 bits no era suficiente para evitar un ataque de fuerza bruta, TDES fue elegido como forma de agrandar el largo de la clave sin necesidad de cambiar de algoritmo de cifrado. Este método de cifrado es inmune al ataque por encuentro a medio camino, doblando la longitud efectiva de la clave (112 bits), pero en cambio es preciso triplicar el número de operaciones de cifrado, haciendo este método de cifrado muchísimo más seguro que el DES. Por tanto, la longitud de la clave usada será de 192 bits, aunque como se ha dicho su eficacia solo sea de 112 bits.

Servicios de Criptografía

En .Net los servicios de criptografía están definidos en el namespace System.Security.Cryptography, el cual provee mecanismos de codificación y decodificación de datos, además de otras operaciones tales como hashing, generación números aleatorios, y mensajes de autenticación.

Manos a la obra

Empecemos por el método de cifrado.

   1: public string Encryption(string data, string key)
   2: {
   3:     TripleDESCryptoServiceProvider TDes = new TripleDESCryptoServiceProvider();
   4:     MD5CryptoServiceProvider Hash = new MD5CryptoServiceProvider();
   5:  
   6:     Byte[] buffer;
   7:  
   8:     try
   9:     {
  10:         //Se convierte la cadena en un arreglo de bytes
  11:         buffer = Encoding.ASCII.GetBytes(data);
  12:  
  13:         //Definimos la llave de encripción, en este caso se me ocurrio incrementar la seguridad
  14:         //usando como llave  de encripción, la hash MD5 de la llave que se especificada en el metodo
  15:         TDes.Key = Hash.ComputeHash(Encoding.ASCII.GetBytes(key));
  16:  
  17:         //Se define el modo de cifrado que se desea utilizar
  18:         TDes.Mode= CipherMode.ECB;
  19:  
  20:         //Se crea el encriptor y se transforma el bloque de bits, se convierte a texto en base 64 para poderlo manejar
  21:         //ya que asi es mas viable el uso sobre con HTTP
  22:         return Convert.ToBase64String(TDes.CreateEncryptor().TransformFinalBlock (buffer,0,buffer.Length));
  23:     }
  24:     catch (Exception ex)
  25:     {
  26:         Console.WriteLine("Se genero un error al cifrar los datos! : {0}", ex.ToString());
  27:         throw ex;
  28:     }
  29: }

En este caso TDES maneja una llave mas larga razón por la cual se me ocurrió que en lugar de la llave que se recibe por parámetro, seria mejor utilizar el hash de la misma, de esta forma se hace aun mas robusto el mecanismo.


Es importante entender que existen diferentes métodos de cifrado, y que se debe usar el mismo tanto para el cifrado como para el descifrado del mensaje.


A continuación veremos el método para descifrar los datos que previamente hemos cifrado.


   1: public string Decryption(string data, string key)
   2: {
   3:     TripleDESCryptoServiceProvider TDes = new TripleDESCryptoServiceProvider();
   4:     MD5CryptoServiceProvider Hash = new MD5CryptoServiceProvider();
   5:  
   6:     Byte[] buffer;
   7:  
   8:     try
   9:     {
  10:         //Se convierte la cadena en un arreglo de bytes
  11:         buffer = Convert.FromBase64String(data);
  12:  
  13:         //Definimos la llave de encripción, en este caso se me ocurrio incrementar la seguridad
  14:         //usando como llave  de encripción, la hash MD5 de la llave que se especificada en el método
  15:         TDes.Key = Hash.ComputeHash(Encoding.ASCII.GetBytes(key));
  16:  
  17:         //Se define el modo de cifrado que se desea utilizar
  18:         TDes.Mode = CipherMode.ECB;
  19:  
  20:         //Se crea el desencriptor y se transforma el bloque de bits, se convierte a texto en base 64 para poderlo manejar
  21:         //ya que asi es mas viable el uso en ambientes de redes
  22:         return Encoding.ASCII.GetString(TDes.CreateDecryptor().TransformFinalBlock(buffer, 0, buffer.Length));
  23:     }
  24:     catch (Exception ex)
  25:     {
  26:         Console.WriteLine("Se genero un error al descifrar los datos! : {0}", ex.ToString());
  27:         throw ex;
  28:     }
  29: }

Como se puede ver, no es un proceso complicado, al contrario, es muy sencillo de implementar y nos permite gozar de un nivel de seguridad mas que adecuado para la mayoría de nuestras aplicaciones, si bien no es adecuada para ambientes donde la seguridad es el atributo de calidad dominante, si es una muy buena opción como mecanismo de seguridad en un entorno normal.


Etiquetas de Technorati: ,,,

jueves, 28 de junio de 2012

Cifrado con DES

Data Encryption Standard (DES) es un algoritmo de cifrado, fue escogido como un estándar FIPS en los Estados Unidos en 1976, en aquel tiempo alcanzo gran popularidad, pero hoy en día se considera inseguro, esto en parte a que la longitud de clave es de solo 56 bits.
Aun cuando puede no ser apto para un entorno en el que se requiere una gran seguridad si puede ser usado en aplicaciones mas sencillas para brindar un nivel de seguridad mas que aceptable. Bajo esta premisa, veremos la forma de implementar este mecanismo de cifrado en nuestras aplicaciones.

Servicios de Criptografía

En .Net los servicios de criptografía están definidos en el namespace System.Security.Cryptography, el cual provee mecanismos de codificación y decodificación de datos, además de otras operaciones tales como hashing, generación números aleatorios, y mensajes de autenticación.

Manos a la obra

Empecemos por crear el método que cifrar los datos:
 
   1: private static string Coding(string cadena, string key)
   2: {
   3:     DESCryptoServiceProvider des = new DESCryptoServiceProvider();
   4:     Byte[] buffer;
   5:     Byte[] cryptoKey=new byte[8];
   6:     
   7:     try
   8:     {
   9:         //Se convierte la cadena en un arreglo de bytes
  10:         buffer = Encoding.ASCII.GetBytes(cadena);
  11:  
  12:         //Se convierte la llave en un array de bytes y se toman 8 bytes que usa DES
  13:         Array.Copy(ASCIIEncoding.ASCII.GetBytes(key), 0, cryptoKey, 0, 7);
  14:  
  15:         //Se define la llave de encripción
  16:         des.Key = cryptoKey;
  17:  
  18:         //Se define el modo de cifrado que se desea utilizar
  19:         des.Mode = CipherMode.ECB;
  20:  
  21:         //Se crea el encriptor y se transforma el bloque de bits, se convierte a texto en base 64 
  22:         //ya que asi es mas viable el uso sobre redes
  23:         return Convert.ToBase64String(des.CreateEncryptor().TransformFinalBlock(buffer, 0, buffer.Length));
  24:     }
  25:     catch (Exception ex)
  26:     {
  27:         Console.WriteLine("Se ha presentado un error! : {0}", ex.ToString());
  28:         throw;
  29:     }
  30: }


Como se puede observar, la llave que usa DES es de 8 bytes, así que se toman solo 8 bytes de el array, pues de otra forma se generara una excepción.

Es importante entender que existen diferentes métodos de cifrado, y que se debe usar el mismo tanto para el cifrado como para el descifrado del mensaje.
A continuación veremos el método para descifrar los datos que previamente hemos cifrado.

   1: private static string UnCoding(string cadena, string key)
   2: {
   3:     DESCryptoServiceProvider des = new DESCryptoServiceProvider();
   4:     Byte[] buffer;
   5:     Byte[] cryptoKey = new byte[8];
   6:  
   7:     try 
   8:     {
   9:         //Se convierte la cadena en un arreglo de bytes
  10:         buffer = Convert.FromBase64String(cadena);
  11:  
  12:         //Se convierte la llave en un array de bytes y se toman 8 bytes que usa DES
  13:         Array.Copy(ASCIIEncoding.ASCII.GetBytes(key), 0, cryptoKey, 0, 7);
  14:  
  15:         //Se define la llave de encripción
  16:         des.Key = cryptoKey;
  17:  
  18:         //Se define el modo de cifrado que se desea utilizar
  19:         des.Mode = CipherMode.ECB;
  20:  
  21:         //Se crea el decodificador y se transforma el bloque de bits, se convierte a una cadena de texto
  22:         return Encoding.ASCII.GetString(des.CreateDecryptor().TransformFinalBlock(buffer, 0,buffer.Length));
  23:     }
  24:     catch (Exception ex)
  25:     { 
  26:         Console.WriteLine("Se ha presentado un error al decodificar! : {0}", ex);
  27:         throw ;
  28:     }
  29: }

Como se puede ver, no es un proceso complicado, al contrario, es muy sencillo de implementar y nos permite gozar de un moderado nivel de seguridad en aplicaciones donde por diferentes motivos la seguridad no esta entre los atributos de seguridad dominantes, pero que tampoco queremos dejarla de lado totalmente.

Etiquetas de Technorati: ,,,,,,