![]() |
Utilizar modulo encriptacion en Delphi
Hola a todos!
Estoy intentando utilizar unas librerias de Delphi del compañero Seonane para encriptar con AES-256: http://delphi.jmrds.com/?q=node/43 Esto lo quiero incorporar en un proyecto de C++ Builder 6 y como ya he realizado otras veces no hay problema en incorporar units .pas, pero en este caso al compilar me esta dando un problema que no encuentra o no puede enlazar con la dll del sistema Crypt32.dll. que creo esta perfectamente declarado en el codigo.
Exactamente el mensaje de error que me da el linker es:
Las otras librerias .pas me las compila bien. Solo falla el enlace con estas API de Guindows. Gracias. |
TAl y como explica en la página de Seoane, esas funciones utilizan la API de Windows. Debes asegurarte de que la API está instalada en tu sistema.
Si no lo tienes segúramente deberás instalar esto. |
Hola Toni.
Sin desvalorizar la biblioteca (library = biblioteca) de Domingo Seoane, que con toda seguridad es muy buena, te comento que hace algunas semanas intenté usar en directo las DLLs nativas de Microsoft del enlace que amablemente señala Neftalí. No obstante, entrando desde esa página al enlace que reza Alternatives to Using CAPICOM, me di cuenta de la variedad y versatilidad de clases que .NET tiene en el terreno de la criptografía. Como CAPICOM me resultaba insuficientemente amigable y no encontraba alternativas Delphi / Win32 para el objetivo que me habían encomendado (hacer firma digital XML), opté por escribir una sencilla clase en C# con una versión de prueba de Visual Studio, y compilé dicha clase como un ensamblaje (assembly) DLL capaz de ser llamado desde aplicaciones Win32. La clave para lograr esta compatibilidad es que la biblioteca generada exporte tu clase .NET como interfaz COM. Para quienes encuentren interesante esto, en la ayuda de Delphi (y supongo que en la de C++ Builder también) hay información al respecto en los apartados: Requirements for COM interoperability, .NET components and type libraries y Accessing user-defined .NET components (recomiendo leerlos en ese orden). Al parecer Microsoft acuña los términos interoperability y COM Callable Wrappers (CCW); buscándolos en Google se encuentran varios ejemplos que pueden resultar útiles (además del que Borland describe en la ayuda). Sin más propósito que enriquecer el tema. Saludos. Al González. |
Hola,
Muchas gracias por ambas respuestas. Cita:
Al Gonzalez, te agradezco mucho tambien tu aportación. Pero creo que si puedo utilizar estas librerias inicialmente es mas que suficiente y al disponer de los fuentes me permite hacer algo muy compacto. Como comentario, deciros que esto lo quiero para realizar una pequeña utileria para Firebird para poder encriptar/desencriptar facilmente todo el código de procedimientos almacenados de una base de datos. Que para quien realiza aplicaciones con un peso muy importante en la base de datos es importante proteger. La cual cuando este terminada la pondre a disposición del Club Delphi. |
Cita:
La solución es sencilla, debes crear Crypt32.lib, para ello abre una consola de comandos en la carpeta donde tienes Crypt32.dll y ejecuta: Código:
implib Crypt32.lib Crypt32.dll Código:
#pragma comment(lib, "Crypt32.lib") Saludos. |
Eres es un monstruo!! :D
Con estos funciona perfectamente! Me despistaba porque desde el C++ Builder puedes llamar todas las apis sin necesidad de declararlas (estan todas declaradas en los archivos de cabecera) ni hacer todo esto, pero como esta en un modulo .pas ya hacia su propia declaracion externa.... pero bueno ya esta. Muchas gracias! :) |
Cita:
Cita:
Sólo están las APIs que "existían" en cada momento al aparecer la versión correspondiente. Builder 6 es bastante antiguo... Para usar las APIs modernas las tienes que declarar e importar. Saludos. |
Cita:
Pero igualmente, eres un monstruo! :D |
Hola compañeros!
Tal y como os comente, subo una primera version beta de esta pequeña utilidad para Firebird que nos permite encriptar/desencriptar los procedimientos almacenados de una base de datos. A mi personalmente me va a ir muy bien para simplificar el mantenimiento de mis aplicaciones basadas en Firebird. Lo he subido en este hilo pero si creeis que es mas oportuno subir en otro hilo vosotros mismos. Nota: Agradecimientos al compañero Seonane por sus modulos de encriptacion. Nota2: Ojo es una beta! |
No sube mi fichero adjunto:(
Y solo tiene 195kb....me podeis hechar una mano, gracias. |
¿Por qué no sube?, ¿qué mensaje sale?
|
Si, perdona. Dice que 'Excede tu cuota por 102,0 KB' pero teoricamente puedo suber hasta 293kb y ocupa menos.
|
Súbelo al FTP, hay una sección "Builder" con varios apartados: Componentes, Ejemplos, Manuales, Otros documentos y Tools.
Puedes subirlo al que creas más conveniente y luego lo enlazas desde tu mensaje. |
Por favor, ¡¡¡no subas un ejecutable!!!.
Por cuestiones de seguridad, no lo podemos admitir, ha sido borrado. Sube el código fuente en un zip o un rar, directamente. |
Disculpa, no sabia que no se permitia ejecutables.
Bueno la idea era compartir la utilidad, si subo los fuentes quien no tenga la misma version C++ Builder no podra compilarlo. http://www.terawiki.clubdelphi.com/B...s firebird.rar |
Cita:
|
Si, ahora veo el mensaje Casimiro. Ya he subido los fuentes. Como decia en el ultimo post la idea era compartir tambien el ejecutable para quien quiera probarlo o utilizarlo y habra mucha gente del foro que no tenga C++ Builder para compilarlo.
|
Es que esto es un sitio de compartir código, aprender, etc. pero un ejecutable es todo lo contrario. Seguro que quien esté interesado consigue compilarlo.
Puedes incluir el ejecutable, con cuidado de revisar antes con el antivirus, pero debe ir todo el código fuente. |
Problemas utilizando esta libreria en W2008 Server
Hola a todos,
Alguien tiene idea porque puede fallar este modulo de encriptacion AES256 que utilizo en este ejecutable por el momento solo en servidores con Windows 2008 Server 64 bits? La funcion que encripta retorna una cadena vacia, en lugar de la cadena encriptada.. :mad: En el resto de maquinas que he probado me ha funcionado bien. Sobretodo si alguien utiliza esta utilidad que tenga la precaución de hacer un backup primero de la base de datos. Saludos! |
|
La franja horaria es GMT +2. Ahora son las 18:22:31. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi