Aplicación con código fuente completo en Delphi 12 que permite cifrar/descifrar un texto mediante los algoritmos AES-128, AES-192, AES-256, DES, 3DES.1, 3DES.2, Blowfish y Twofish, con los modos de encadenamiento CBC, ECB, CFB, CTR, OFB, CFB 8 bit y PCBC. También permite codificar/decodificar una cadena en base64 y generar el Hash en MD5 SHA2 512, MD5 SHA2 512 256 y MD5 SHA1.

Requisitos para desarrollar app de cifrado/descifrado en Delphi 12

Necesitaremos disponer del IDE de desarrollo Delphi 12, que podemos descargar e instalar (en su versión Community) como indicamos en este tutorial:

Usaremos el componente gratuito LockBox 3 de TurboPack, que podemos instalar en Delphi 12 desde el menú «Tools» – «GetIt Package Manager»:

Buscaremos «LockBox» y pulsaremos en «Install» en la versión que se ajuste a la versión del IDE de Delphi de la que dispongamos:

Este componente es VCL por lo que no necesitaremos DLL adicionales para su uso.

Crear proyecto Windows VCL (Windows nativo) para cifrado/descifrado en Delphi 12

Añadiremos un nuevo proyecto en Delphi 12, desde el menú «File» – «New» – «Windows VCL Application – Delphi»:

Añadiremos los siguientes componentes al formulario principal de nuestra aplicación:

Mostramos a continuación el código Delphi/Pascal completo de la unidad UnidadCifrarDescifrar.pas, que contiene todas las funciones, procedimientos, así como el código de cada componente y evento (descarga del proyecto completo con el código fuente):

App Cifrar/Descifrar Windows en funcionamiento

Si compilamos la aplicación (o ejecutamos el fichero CifrarDescifrarAES.exe, nos mostrará la siguiente ventana. Para cifrar un texto, podremos escribir el texto directamente en «Texto a cifrar/descifrar», o bien pegarlo desde otro texto copiado o bien abrir un fichero de texto desde la propia aplicación. Una vez introducido el texto, elegiremos el algoritmo de cifrado (AES, DES o 3DES), elegiremos el modo de encadenamiento (CBC, ECB, CFB, CTR, OFB o PCBC) y elegiremos la codificación de caracteres (UTF7, UTF8, ANSI, Unicode o ASCII). Introduciremos una clave de cifrado y pulsaremos en «Cifrar»:

Si no hay errores, la aplicación realizará el cifrado del texto con el algoritmo, el modo, la codificación y la clave elegidos y lo mostrará en «Texto cifrado…»:

Desde la aplicación podremos copiar el texto cifrado al portapapeles, guardarlo en un fichero de texto plano o incluso intercambiar el texto cifrado por el descifrado.

Para descifrar un texto cifrado, realizaremos la misma operación, introduciendo el texto cifrado en «Texto a cifrar/descifrar», eligiendo el mismo algoritmo, mismo modo, misma codificación y misma clave que los que se usaron para el cifrado. Pulsaremos en «Descifrar» para obtener el texto descifrado:

Si hemos introducido los valores correctos, obtendremos el mismo texto que ciframos anteriormente:

La aplicación también permite codificar/decodificar un texto en base64. Para este algoritmo, dado que no es un cifrado, no se requiere de modo de encadenamiento ni de clave de cifrado. Introduciendo el texto a codificar y eligiendo «base64», será suficiente con pulsar en «Codificar»:

Para hacer el proceso inverso, de decodificación, introduciremos el texto codificado en base64, elegiremos «base64» y pulsaremos en «Decodificar»:

La aplicación también permite generar el Hash MD5 de un texto. Será suficiente con introducir el texto en «Texto a cifrar/descifrar», elegir el algoritmo de hash y pulsar en «», se generará el hash MD5 correspondiente (que no es reversible):

Descarga del proyecto completo en Delphi 12 y los ejecutables para Windows de 32 y 64 bits

En el siguiente enlace podéis descargar el proyecto completo desarrollado en Delphi 12, que incluye todo el código fuente de la aplicación, así como los ejecutables funcionales (100% VLC, 100% nativos para Windows, que no requieren de instalación ni de DLL externas):