Mi viejo chivato

Hoy me puse a recordar viejos tiempos (no tan viejos, no soy tan mayor), y me acorde de un pequeño programa que hice, cuando estaba encargado de las aulas de informática de una universidad, para controlar a los alumnos. Si, lo se, era un poco cabroncete, debia de haber dejado a los chavales que se divirtieran, vieran porno, hablaran por el messenger y que instalaran juegos. Si volviera a dedicarme a lo mismo (no es mal trabajo, te pagan por no hacer casi nada) les dejaria hacer lo que quisieran, pero en aquella epoca me tomaba mi trabajo muy en serio y me salio el policia que llevo dentro.

Actulizar un programa por internet

Hace tiempo creé una pequeña aplicación para actualizar un programa, o cualquier otro documento, descargando las actualizaciones directamente de internet, y publique su codigo en los foros de Clubdelphi. Ahora he vuelto a revisar el código, eliminado algunas cosas innecesarias y añadiendo algunas otras. El resultado es el siguiente, espero que le sea de utilidad a alguien.

Dump, una pequeña herramienta

Esta es una pequeña herramienta que permite copiar un archivo en otro. Ya se que, a simple vista, no parece tener mucha utilidad, pero la verdad es que sabiéndola usar nos permitirá hacer algunas cosas muy interesantes.

Cifrar texto con AES-256

Siguiendo con el tema del cifrado AES-256, del que ya hable aquí y aquí, vamos a ver un par de funciones que nos permitirán cifrar y descifrar texto de una manera rápida y sencilla, mientras mantenemos toda la potencia de este algoritmo de cifrado. Para esto vamos a combinar el código que podemos encontrar aquí, con este otro que publique aquí y que nos permitirá representar el texto cifrado con caracteres legibles utilizando la codificación base64.

Cifrar y descifrar en Base64

La siguiente unit permite codificar y descodificar un conjunto de bytes utilizando la codificacion Base64. Utiliza las librerias criptograficas de la api de windows, lo que nos permite obtener un codigo muy simple y facil de entender.

Recuerar imagenes jpeg 3

Hace algún tiempo hablé de como recuperar imágenes jpg de un disco o archivo (aquí y aquí), ahora, además de depurar un poco el código de ambos programas, voy a aprovechar para unirlos en uno solo. El código resultante se puede compilar tanto en delphi como en freepascal, por lo que puede ser usado perfectamente en windows o en linux.

Generador de contraseñas

Esta utilidad sirve para generar contraseñas utilizando un algoritmo extremadamente simple, pero con un nivel de seguridad bastante bueno. Se basa en generar un hash a partir de dos parámetros, uno puede ser el nombre o la dirección del sitio donde se va a usar la contraseña, y el otro una clave "maestra" que es igual para todas las contraseñas. El hash generado siempre es el mismo si los parámetros de entrada no cambian.

Ejemplo de AES utilizando freepascal

Hace poco hablaba aquí sobre el algoritmo de cifrado AES, y mostraba una unit (AES.pas) que permitía utilizar este algoritmo, en concreto AES 256, para cifrar y descifrar bloques de de datos y streams. Esa unit puede usarse fácilmente con freepascal, incluso desde linux, así que pensé que era una buena oportunidad para mostrar un ejemplo de una aplicación hecha en freepascal para Linux.

Subir archivos cifrados a un ftp

Aqui dejo un pequeño juguete. Se trata de una aplicación de consola que permite subir o bajar un archivo de un servidor ftp, pero con la particularidad que lo cifra al subirlo y lo descifra al bajarlo. El cifrado que utiliza es AES de 256 bits, que nos permite usar contraseñas de hasta 32 caracteres.

Obtener handle de una ventana a partir del PID de un proceso

Para encontrar el handle de una ventana, existen ya funciones como FindWindow, que permite encontrar una ventana conociendo su título, pero seria interesante poder limitar la búsqueda a las ventanas de un proceso determinado. Esto es lo que hace la función siguiente, encuentra el handle de una ventana, pasándole como parámetro el PID del proceso al que pertenece y opcionalmente el título de la ventana.

Distribuir contenido