FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
Cifrado AES-256
Ayer y hoy le he estado dando vueltas al algoritmo AES, mas concretamente al AES-256. El resultado es la siguiente unit (AES.pas):
Me gustaría que le echarais un vistazo, y me dijerais que tal va, o si tenéis alguna sugerencia. También os dejo un par de ejemplos de como utilizar esta unit. Para cifrar un archivo:
Para descifrar un archivo, cifrado con el ejemplo anterior:
Cualquier sugerencia o corrección sera bien recibida |
#2
|
|||
|
|||
Hola amigo Domingo, es impresionante como sigues jugando con los algoritmos, ya hice una prueba de un archivo de texto y me parece una idea genial para encriptar cierta información que ya tenia en mente.
Mas que sugerencias o correcciones, te pregunto, los valores hexadecimales de los arreglos, son aleatorios y los puedo cambiar a mi gusto o deben ser así tal cual. Salud OS y mis respetos.
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney |
#3
|
||||
|
||||
Cita:
Cita:
|
#4
|
||||
|
||||
Hola,
Todo marcha bien Domingo. Únicamente, tal vez no tenga que ver, pero, si tratas de descrifrar un archivo y como salida eliges la misma ruta (descifrar un archivo y guardarlo en el mismo lugar) aparece un "no puede accederse al archivo, porque está bloqueado y bla, bla. bla". He intentado con las constantes del constructor de "TFileStream", pero, no he dado con la tecla. Por lo demás muy práctico, en un momento dado, "AES.pas.zip" ya está en mi carpeta de "ejemplos"... que tienes monopolizada. Última edición por dec fecha: 25-07-2007 a las 03:55:16. |
#5
|
|||
|
|||
Bueno, te iba a comentar lo siguiente:
Cita:
Salud OS.
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney |
#6
|
||||
|
||||
Cita:
|
#7
|
||||||
|
||||||
Cita:
Saludos
__________________
|
#8
|
||||
|
||||
Cita:
De todas formas, el algoritmo AES es el usado por el gobierno de los EEUU, es ampliamente conocido, estudiado y probado, así que no hay porque dudar de su eficacia. |
#9
|
|||
|
|||
Yo uso el componente TCipherManager aunque nunca use ese algoritmo, este componente trae varios algoritmos entre ello el AES (lo llama Rijndael).
Noto que tiene algunas diferencias en las constantes, pero no tengo los suficientes conocimientos para ver si en definitiva es lo mismo Despues voy a probarlos a ver si son compatibles. Saludos |
#10
|
||||
|
||||
Consulta!
Buenos días:
Revivo este hilo para saber si es posible usar esta implementación para poder encriptar y desencriptar cadenas de texto string. Hay multiples componentes que lo hacen, pero la idea es usar esta unit que ha implementado domingo, simple y concreta y sin necesidad de utilizar grandes paquetes de componentes. Muchas Gracias!!!!
__________________
Saludos. Marcelo D. Alegre |
#11
|
||||
|
||||
Cita:
En resumen, el proceso seria el siguiente: -- Para cifrar -- - Cargar el texto en un TStringStream - Cifrarlo, quedando el resultado en un TMemoryStream - Codificar el TMemoryStream a base64 -- Para descifrar -- - Descodificar el texto en base64, quedando el resultado en un TMemoryStream - Descifrarlo, quedando el resultado en un TStringStream - Obtener el texto en claro del TStreamStream. No lo he probado, pero debería de funcionar Algunos links http://delphi.jmrds.com/?q=node/43 http://delphi.jmrds.com/?q=node/31 |
#12
|
||||
|
||||
Y para que no digais que falta el codigo, y aunque ando un poco apurado ...
|
#13
|
||||
|
||||
Gracias!!
Domingo, sin palabras!! sos un grande!!
Muchas gracias.-
__________________
Saludos. Marcelo D. Alegre |
#14
|
||||
|
||||
Un solo Inconveniente:
Sucede que uso Windows 2000. Por lo que se ve, en windows 2000 la crypt32.dll no tiene los metodos:
CryptBinaryToStringA CryptStringToBinaryA Por lo tanto baje la libreria nueva desde la web y la use sin problemas (creo) Dado que puedo Cifrar texto sin problemas. Sin embargo, al descifrar (no creo que tenga que ver con que uso la libreria por separado, lo digo por el error...) se produce una excepcion de "Stream read error", donde al debugear, el problema se da en la linea que tiene este codigo:
la prueba la estoy haciendo llamando a la funcion de la siguiente manera: edit1.text:=Descifrar('hola','1234'); Alguna idea de que me puede estar afectando? Muchas gracias!!!
__________________
Saludos. Marcelo D. Alegre |
#15
|
||||
|
||||
Retiro lo dicho. Todo funciona correctamente!!!.
De nuevo gracias Domingo, me diste una mano grande. Saludos.
__________________
Saludos. Marcelo D. Alegre |
#16
|
||||
|
||||
Pues no me había fijado en el detalle de que en Windows 2000 no funcionaba, ahora mismo actualizo la web indicando que se necesita Windows XP como mínimo. Gracias kanvictor
Por otro lado, el error que te daba era debido a que estabas intentando descifrar una cadena de texto ("hola") que no había sido cifrada. Así es normal que te diera un error , pero quizá seria interesante que incluyas la función dentro de un bloque "try except" para capturar este tipo de errores. |
#17
|
||||
|
||||
Cita:
Como siempre!, agradecido por tu ayuda Domingo. Saludos!.-
__________________
Saludos. Marcelo D. Alegre |
#18
|
|||
|
|||
hola seoane:
intento usar el archivo aes.pas y base64.pas, y las funciones de cifrar un string, si me funciona cuando ingreso el string de la forma 'texto' a las funciones, pero cuando lo hago por medio de edits ó memos ya no me funciona. Estoy eliminando lo que un TMemo por ejemplo agrega, los valores #$D, #$A, #$0A0D etc. Lo elimino y aun asi, no me decodifica correctamente. tomando en cuenta que las funciones de codificar y decodificar son las mismas de este post. para codificar, donde en datos le escribo 'hola' y en llave escribo 'llave' :
y para decodificar, donde datos es igual al resultado de la codificacion y llave sigue siendo 'llave':
resultado: Encriptacion : 䅂䅁䩁乘扙癐ぅ㙰湱䩎䅥㥶乙㵳 Desencriptacion : ,F1v no entiendo porque sale mal, espero tu respuesta y gracias. |
#19
|
|||
|
|||
Hola seoane:
continue leyendo tus links, mi problema era al parecer la version de crypto32.dll que tenia, y lo que fallaba era la codificacion en base64, ya descargue la libreria donde solo se utiliza codigo para codificar en base64 y ya funciona a la perfeccion. Saludos y muy buen aporte. |
#20
|
|||
|
|||
Como usar la API de Windows para manipular los archivos
Hace ya un tiempo me di cuenta que trabajar con TStream o cualquiera de sus descendientes, es muy lento a la hora de manipular archivos de disco y mas si estos son enormes; por eso uso la API de Windows para estas cuestiones. Necesito adaptar el codigo del algoritmo. Algunas ideas pleaseeeee!!!!!
Gracias. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
HTTP ¿cifrado? N.P.I | lag_0 | Internet | 3 | 13-04-2007 09:04:29 |
Un hombre demanda a Microsoft: el FBI accedió a su disco duro... cifrado | marcoszorrilla | La Taberna | 6 | 06-03-2007 20:35:03 |
Disco de cifrado Casero (Especial para los aburridos pensadores de los últimos días) | Neftali [Germán.Estévez] | Noticias | 0 | 22-11-2006 11:05:00 |
Cifrado de password... | dunia_lv | MS SQL Server | 2 | 08-08-2006 22:06:18 |
|