Cómo encriptar y desencriptar ficheros mediante los algoritmos RC2, RC4, DES, 3DES y AES. Mostramos y explicamos el código fuente de la aplicación AjpdSoft Encriptar ficheros con CAPICOM. Explicamos qué es CAPICOM y cómo descargarlo y registrarlo. Mostramos cómo usar CAPICOM con Borland Delphi.

Qué es CAPICOM, para qué sirve

CAPICOM es un control ActiveX o una librería (según el caso) de Microsoft que proporciona una interfaz COM para Microsoft CryptoAPI (también llamada Cryptographic Application Programming Interface, Microsoft Cryptography API, ó CAPI). CAPICOM permite usar un conjunto de funciones de CryptoAPI para permitir a los desarrolladores de aplicaciones incorporar de forma sencilla la funcionalidad de firma digital y encriptación en sus aplicaciones. Debido a que utiliza COM, los desarrolladores de aplicaciones pueden acceder a esta funcionalidad en una serie de entornos de programación tales como Microsoft Visual Basic, Visual Basic Script, Active Server Pages (ASP), Microsoft JScript, C + +, Delphi, Java, PHP y otros.

CAPICOM se puede empaquetar como un control ActiveX, para ser instalado en los navegadores y permitir a los desarrolladores Web utilizarla en aplicaciones basadas en Web (ASP, PHP, etc.). Además, CAPICOM cuenta con un SDK (kit de desarrollo de software o Software Development Kit) con las librerías necesarias para que sea usado por lenguajes de programación para desarrollar aplicaciones de escritorio (Delphi, Visual Basic .Net, Visual Basic, etc.).

De esta forma, con CAPICOM podremos implementar la utilidad de uso de certificados digitales en nuestras aplicaciones casi sin esfuerzo, pues todas las funciones necerias para el acceso a estos certificados ya están implementadas y listas para ser usadas.

Descarga e instalación de Microsoft CAPICOM SDK

En primer lugar deberemos descargar e instalar el SDK de CAPICOM (Platform SDK Redistributable: CAPICOM), disponible gratuitamente en: [[Ya no está disponible]].

Instalaremos CAPICOM SDK ejecutando el fichero descargado capicom_dc_sdk.msi, se iniciará el asistente de instalación de CAPICOM 2.1.0.2 SDK, pulsaremos «Next»:

Cómo usar CAPICOM en Delphi para obtener los certificados   digitales instalados en un equipo

Leeremos los términos de licencia, si estamos de acuerdo marcaremos «I accept the terms in the License Agreement» y pulsaremos «Next»:

Cómo usar CAPICOM en Delphi para obtener los certificados   digitales instalados en un equipo

Indicaremos en «Location» la carpeta de destino de CAPICOM SDK (pulsando «Browse» podremos cambiarla), pulsaremos «Next» para continuar:

Cómo usar CAPICOM en Delphi para obtener los certificados   digitales instalados en un equipo

Pulsaremos «Install» para iniciar la instalación definitiva de CAPICOM SDK:

Cómo usar CAPICOM en Delphi para obtener los certificados   digitales instalados en un equipo

Una vez finalizada la instalación, pulsaremos «Finish»:

Cómo usar CAPICOM en Delphi para obtener los certificados   digitales instalados en un equipo

En realidad, la instalación de CAPICOM 2.1.0.2 SDK lo único que hace es descomprimir una carpeta en la carpeta de destino con los siguientes ficheros y subcarpetas:

Cómo usar CAPICOM en Delphi para obtener los certificados   digitales instalados en un equipo

La carpeta que más nos interesa es «Lib» que contiene la librería «capicom.dll» necesaria para el funcionamiento de nuestra aplicación. Esta librería deberá estar en la carpeta del sistema, en C:\Windows\System32 y correctamente registrada con «regsvr32.exe» o AjpdSoft Registro de OCX y DLL como explicamos aquí.

AjpdSoft Cómo usar CAPICOM en Delphi para obtener los certificados   digitales instalados en un equipo

Registro de la librería capicom.dll en Windows 7

Una vez descargado e instalado el software CAPICOM SDK copiaremos el fichero «capicom.dll» ubicado en la carpeta de instalación de CAPICOM, en la subcarpeta «LibX86»:

Registro de la librería capicom.dll en Windows 7

Lo pegaremos en la carpeta del sistema (system32):

Registro de la librería capicom.dll en Windows 7

A continuación registraremos la librería capicom.dll o bien usando regsvr32.exe o bien utilizando AjpdSoft Registro de OCX y DLL, abriremos AjpdSoft Registro de OCX y DLL ejecutando el fichero «registroOCX.exe» en modo administrador, pulsando con el botón derecho sobre el fichero descargado y seleccionando «Ejecutar como administrador»:

Registro de la librería capicom.dll en Windows 7

Pulsaremos el botón «<<» para seleccionar el fichero capicom.dll:

Registro de la librería capicom.dll en Windows 7

En «Tipo» seleccionaremos «DLL (*.dll)», buscaremos el fichero «capicom.dll» en la carpeta System32 de Windows y pulsaremos «Abrir»:

Registro de la librería capicom.dll en Windows 7

Pulsaremos en «Registrar»:

Registro de la librería capicom.dll en Windows 7

Si todo es correcto mostrará un mensaje como este:

Registro de la librería capicom.dll en Windows 7

Con el texto:

El proceso de registro ha finalizado con el siguiente resultado:
Registrados: 1.
No registrados: 0

Nota: si tenemos activado el control de cuentas de usuario (UAC) de Windows 7, es posible que nos muestre algún mensaje de confirmación al que tendremos que responder «Sí».

Cómo usar CAPICOM en Delphi para encriptar y desencriptar ficheros

Para encriptar y desencriptar ficheros mediante el lenguaje de programación Delphi y la herramienta de Microsoft CAPICOM, necesitaremos la librería capicom.dll correctamente registrada y el fichero CAPICOM_TLB.pas, que podremos descargar del ejemplo de este artículo:

Abriremos Delphi, crearemos un nuevo proyecto, añadiremos algunos componentes al formulario principal: algunos TEdit, TButton, etc. El formulario quedará de la siguiente forma:

Cómo usar CAPICOM en Delphi para encriptar y desencriptar ficheros

Añadiremos el siguiente código:

  • Para el botón «Encriptar»:
  • Para el botón «Desencriptar»:
  • El procedimiento «desencriptar»:
  • El procedimiento «encriptar»:

El código fuente completo de la aplicación puede verse aquí.

La aplicación AjpdSoft Encriptar ficheros con CAPICOM en funcionamiento

Para probar la aplicación crearemos un fichero cualquiera con un texto, por jemplo «Prueba de encriptación de fichero por AjpdSoft». Crearemos este fichero de texto plano y lo guardaremos. A continuación ejecutaremos el fichero encriptarFicheros.exe (no necesita instalación pero sí necesita la DLL capicom.dll en el sistema correctamente registrada como explicamos aquí).

Para encriptar un fichero, en primer lugar, lo seleccionaremos pulsando el botón «…» (o bien escribiremos la ruta y nombre en «Fichero a Encriptar»):

La aplicación AjpdSoft Encriptar ficheros con CAPICOM en funcionamiento

Seleccionaremos el fichero, en nuestro caso «prueba.txt»:

La aplicación AjpdSoft Encriptar ficheros con CAPICOM en funcionamiento

La aplicación establecerá como fichero de destino encriptado el seleccionado, añadiendo el texto «ENCRIPTADO» al principio, si no se indica otro fichero de destino, será en éste donde se guarde el fichero origen encriptado. En «Contraseña» introduciremos la contraseña para la encriptación que será necesaria para la desencriptación posterior, sin esta contraseña no será posible desencriptar el fichero. En «Algoritmo» seleccionaremos el algoritmo de encriptación, seleccionaremos el Tamaño y pulsaremos «Encriptar»:

La aplicación AjpdSoft Encriptar ficheros con CAPICOM en funcionamiento

Si la encriptación ha sido correcta mostrará el mensaje:

La aplicación AjpdSoft Encriptar ficheros con CAPICOM en funcionamiento

Con el texto: «Fichero encriptado».

Si accedemos a la carpeta de destino, podremos ver el fichero encriptado creado por la aplicación:

La aplicación AjpdSoft Encriptar ficheros con CAPICOM en funcionamiento

Si intentamos abrirlo veremos caracteres ilegibles, por lo que el proceso de encriptación se ha realizado correctamente:

La aplicación AjpdSoft Encriptar ficheros con CAPICOM en funcionamiento

Para desencriptar un fichero, el proceso es similar, pero en «Desencriptar fichero», aunque para este proceso no es necesario indicar el algoritmo de encriptación previo. Para desencriptar el fichero lo seleccionaremos pulsando en el botón «…» de «Fichero a desencriptar», en «Contraseña» introduciremos la contraseña con la que lo encriptamos y pulsaremos el botón «Desencriptar»:

La aplicación AjpdSoft Encriptar ficheros con CAPICOM en funcionamiento

Si todo es correcto mostrará el mensaje:

La aplicación AjpdSoft Encriptar ficheros con CAPICOM en funcionamiento

Con el texto: «Fichero desencriptado».

Si abrimos el fichero desencriptado, podremos ver que el texto ya es legible nuevamente «Prueba de encriptación de fichero por AjpdSoft»:

La aplicación AjpdSoft Encriptar ficheros con CAPICOM en funcionamiento

Por supuesto, en el ejemplo hemos encriptado y desencriptado un fichero de texto plano, pero AjpdSoft Encriptar ficheros con CAPICOM se puede usar para encriptar y desencriptar cualquier tipo de fichero (mp3, txt, doc, xls, mdb, rar, zip, jpg, pdf, html, tif, asp, php, exe, com, bat, etc.).

Anexo

Código fuente source code aplicación AjpdSoft Encriptar ficheros con CAPICOM

A continuación os mostramos el código fuente (source code) completo en Borland Delphi 6 de la aplicación AjpdSoft Encriptar ficheros con CAPICOM: