Base64 usando streams

Hace muy poco publique el código para cifrar datos binarios en base64, y aunque funciona perfectamente tiene el inconveniente de que tanto el cifrado como el descifrado se hacen de una sola vez, lo que significa que hay que cargar previamente todos los datos en memoria para poder trabajar con ellos. Esto no es un problema con datos de pequeño tamaño (unos pocos kilobytes) pero cuando ya estamos hablando de varios megas cargar toda esa información a la vez en la memoria no es una buena opcion. Aquí es donde entran los streams TBase64Enc y TBase64Dec que nos permitirán cifrar y descifrar en varias operaciones sucesivas de lectura y escritura en vez de en una sola como antes.

Cifrar y Descifrar en base64 (Delphi)

En anteriores ocasiones publique el código para cifrar y descifrar en base64 utilizando la API de windows, pero en esta ocasión voy mostrar como hacerlo usando solamente código, sin tener que recurrir a dlls fuera de nuestro programa. De esta manera obtendremos dos ventajas, ya no dependeremos de la versión de crypt32.dll que tenga instalada windows, y ademas podremos portar nuestro código a otros sistemas operativos si contamos con un compilador adecuado.

TCP Broker (Delphi)

La siguiente aplicación es un pequeño servidor TCP que permanece a la escucha aceptando conexiones de varios clientes a la vez. Cuando cualquiera de estos clientes envía algo al servidor, este lo reenvía a todos los demás clientes. Se puede utilizar de muchas formas, pero quizá la mas simple, y mas inmediata sea la de crear una pequeña sala de chat multiusuario.

Shell inversa con Delphi

El siguiente código muestra como crear un shell inversa, es decir, si ejecutamos este programa en un ordenador remoto intentara conectarse con nosotros para darnos acceso remoto a la shell.

Guardar una clave de forma segura (SHA256)

Tradicionalmente las contraseñas de acceso se guardan utilizando algún tipo de función "hash", de tal manera que si un atacante consigue hacerse con el archivo que contiene esos "hash" le seria imposible, al menos en teoría, averiguar las contraseñas originales. Al menos eso era así hasta que la capacidad de los ordenadores actuales, y el aprovechamiento de hardware como el de las tarjetas gráficas, hace posible que un simple chaval de 14 años, en el ordenador de su casa, pueda averiguar una contraseña de 6 cifras en menos de una hora si se ha utilizado, por ejemplo, md5.

Mini servidor web en Android

Sigo experimentando con Android en mi Samsung Galaxy Ace. Esta vez he instalado un compilado de C, y he aprovechado para sacar del cajón el código del "mini" servidor web que publique aquí hace ya 5 años http://delphi.jmrds.com/?q=node/14 El programa va fenomenal en Android y solo he tenido que cambiar una linea del código para adaptarlo al compilador que instale en el teléfono.

Leer los datos públicos del DNIe

Me acabo de renovar el DNI (Documento Nacional de Identidad) y me lo dieron con su "chip" y su número PIN, así que aprovechando que tenia un lector de tarjetas guardado en un cajón desde hace mas de un año me propuse darle uso. Primero instale todo el software necesario para usarlo con el navegador, firmar documentos, etc ... pero pronto me aburrí, así que intente buscar la forma de acceder a los datos del DNIe desde Delphi (mi lenguaje de programación preferido). Pero no quería jugar con los "datos privados" contenidos en la tarjeta ya que para eso hace falta introducir el PIN y corría el riesgo, si me equivocaba al programar, de bloquear el DNIe y tener que ir a desbloquearlo a una comisaria de policía. Así que me limite a su "zona publica" donde, entre otras cosas, podemos encontrar el numero del documento, nuestro nombre y apellidos, la fecha de expedición, etc ...

Leer código GS1-128 (UCC/EAN-128)

El código GS1-128, antes llamado EAN-128, es un sistema para la identificación que se utiliza para el entorno logístico.

Servidor UDP sencillo

Este es un ejemplo de servidor UDP pequeño y ligero, sin grandes pretensiones. Su funcionamiento es sencillo, al ejecutar el programa se pone a escuchar por el puerto 61978 a la espera de recibir un comando, cuando lo recibe crea un nuevo hilo de ejecución que se encarga de procesar el comando y, si es necesario, enviar una respuesta.

Vacunar disco (FAT32) contra un "AUTORUN.INF" malicioso

Últimamente se ha puesto de moda entre el "malware" utilizar discos extraíbles (memorias usb, cámaras de fotos, reproductores de mp3, etc ...) para propagarse de un ordenador a otro. Para conseguirlo crean en el directorio raíz del disco un archivo "AUTORUN.INF" que permite ejecutar el software malicioso cada vez que el disco es conectado a un ordenador. La pequeña aplicación que muestro a continuación permite "vacunar" este archivo de tal forma que resulte mucho más difícil (aunque no imposible) modificarlo, impidiendo de este modo que nuestro disco sea infectado cuando lo usemos en otros ordenadores.

Páginas

Subscribe to La web de Seoane RSS