Fecha y hora actual: Lunes 27 Ene 2020 20:30
Índice del Foro

Foros de programación informática, diseño gráfico y Web

En esta comunidad intentaremos dar soporte de programación a todos los niveles, desde principiantes a profesionales de la informática, desarrollo de programas, programación web y mucho más.

Proyecto - Proteger carpetas y documentos por contraseña

Responder al Tema Ir a página Anterior12345678Siguiente

Índice del Foro > Proyecto de encriptación - CriptoPilla > Proyecto - Proteger carpetas y documentos por contraseña

Autor Mensaje
WhiteSkull
CoAdmin


Registrado: 20 Mar 2009
Mensajes: 3136
Ubicación: y*width+x

Mensaje Publicado: Jueves 21 Jul 2011 22:02

Título del mensaje: Re: Proyecto - Proteger carpetas y documentos por contraseña

Responder citando

En teoría, leería porciones, las encriptaría y las pegaría al fichero. Así un ejemplo rápido cogiendo el procedimiento del anterior comentario, sería así:

Código:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Diagnostics;

namespace UnirFicheros
{
    class Program
    {
        private static float Free() // Devuelve bytes dipsonibles
        {
            //PerformanceCounter pc = new PerformanceCounter("Memory", "Available Bytes");
            //return pc.NextValue();
            return 10; // Imaginemos que solamente disponemos de 10 bytes libres XD
        }

        static void Main(string[] args)
        {
            string ficheroA = "f:\\ParaAñadir.txt";
            string ficheroB = "f:\\Añadido.txt";
            FileStream fsA = null;
            FileStream fsB = null;
            byte[] fs2Contenido = null;

            try // Si todo va bien...
            {
                fsA = File.Open(ficheroA, FileMode.Append); // Preparamos el primer fichero para añadir.
                fsB = File.Open(ficheroB, FileMode.Open);   // Preparamos el segundo para almacenarlo en memoria.
                if (fsB.Length > Free())                    // Pero en caso de que sea muy fichero muy largo,
                {                                           // lo leemos por parte y copiamos poco a poco
                    int tmp = (int)Free(), i;
                    fs2Contenido = new byte[tmp];

                    for (i = 0; i < fsB.Length-tmp; i += tmp)
                    {
                        fsB.Read(fs2Contenido, 0, fs2Contenido.Length);
                        Console.WriteLine("fsb.Length = " + fsB.Length + " , i = " + i + " -- " + System.Text.ASCIIEncoding.ASCII.GetString(fs2Contenido) + "[fin]");
                        fsA.Write(fs2Contenido, 0, fs2Contenido.Length);
                    }

                    fs2Contenido = new byte[fsB.Length-i];
                   
                    fsB.Read(fs2Contenido, 0, fs2Contenido.Length);
                    Console.WriteLine("[queda]\nfsB.Length = " + fsB.Length + " , i = " + i + " -- " + System.Text.ASCIIEncoding.ASCII.GetString(fs2Contenido) + "[fin]");
                    fsA.Write(fs2Contenido, 0, fs2Contenido.Length);

                }else {
                    fs2Contenido = new byte[fsB.Length];
                    fsB.Read(fs2Contenido, 0, fs2Contenido.Length);
                    fsA.Write(fs2Contenido, 0, fs2Contenido.Length);// Añadimos lo almacenado al primer fichero.
                }
                Console.WriteLine("Hecho!");
            }
            catch (Exception ex) // ERROR
            {
                Console.WriteLine(ex.Message + " : " + ex.StackTrace);
            }
            finally // y después cerramos los ficheros.
            {
                fsA.Close();
                fsB.Close();
            }

            Console.ReadKey();
        }
    }
}


Cómo puedes ver Tesis, hemos truncado el valor que devuelve Free() a 10 bytes disponibles, algo imposible Risa pero debería funcionar de manera similar, lo digo en condicional, porque todavía no está implementado, y de eso se trataría...

Volver arriba
Ver perfil del usuario Enviar mensaje privado Visitar sitio web del autor
WhiteSkull
CoAdmin


Registrado: 20 Mar 2009
Mensajes: 3136
Ubicación: y*width+x

Mensaje Publicado: Jueves 21 Jul 2011 22:30

Título del mensaje: Re: Proyecto - Proteger carpetas y documentos por contraseña

Responder citando

otra versión Risa ...

Código:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Diagnostics;

namespace UnirFicheros
{
    class Program
    {
        private static float Free() // Devuelve bytes dipsonibles
        {
            //PerformanceCounter pc = new PerformanceCounter("Memory", "Available Bytes");
            //return pc.NextValue();
            return 10; // Imaginemos que solamente disponemos de 10 bytes libres XD
        }

        static void Main(string[] args)
        {
            string ficheroA = "f:\\ParaAñadir.txt";
            string ficheroB = "f:\\Añadido.txt";
            FileStream fsA = null;
            FileStream fsB = null;

            try // Si todo va bien...
            {
                fsA = File.Open(ficheroA, FileMode.Append); // Preparamos el primer fichero para añadir.
                fsB = File.Open(ficheroB, FileMode.Open);   // Preparamos el segundo para almacenarlo en memoria.
                byte[] fs2Contenido = new byte[fsB.Length];

                if (fsB.Length > Free())                    // Pero en caso de que sea un fichero muy largo,
                {                                           // lo leemos por parte y copiamos poco a poco
                    int tmp = (int)Free(), i;
                    fs2Contenido = new byte[tmp];

                    for (i = 0; i < fsB.Length-tmp; i += tmp)
                    {
                        fsB.Read(fs2Contenido, 0, fs2Contenido.Length);
                        fsA.Write(fs2Contenido, 0, fs2Contenido.Length);
                    }

                    fs2Contenido = new byte[fsB.Length-i];
                }

                fsB.Read(fs2Contenido, 0, fs2Contenido.Length);
                fsA.Write(fs2Contenido, 0, fs2Contenido.Length);// Añadimos lo almacenado al primer fichero.

                Console.WriteLine("Hecho!");
            }
            catch (Exception ex) // ERROR
            {
                Console.WriteLine(ex.Message + " : " + ex.StackTrace);
            }
            finally // y después cerramos los ficheros.
            {
                fsA.Close();
                fsB.Close();
            }

            Console.ReadKey();
        }
    }
}

Volver arriba
Ver perfil del usuario Enviar mensaje privado Visitar sitio web del autor
Tesis
Administrador


Registrado: 04 Mar 2007
Mensajes: 3230
Ubicación: Valencia - España

Mensaje Publicado: Viernes 22 Jul 2011 09:36

Título del mensaje: Re: Proyecto - Proteger carpetas y documentos por contraseña

Responder citando

Interesante...
Parece mas viable que el sistema anterior. Guiño

Cuando lo tengas implementado subelo y le pego un vistazo.

He detectado algunas anomalías/mejoras que se le pueden hacer al programa, como:

  • El mostrador de rutas es algo pobre.
  • Al encriptar un fichero hay que introducir 2 veces la clave de secreta.
  • Al desencrptar un fichero hay que introducir 2 veces la clave secreta.
  • Cuando se encripta un fichero es algo confuso en que carpeta lo guarda. A mi se me guarda en otra carpeta diferente a la que selecciono y no tengo opción de cambiar el nombre.
  • El fichero encriptado tiene un formato (icono) que el sistema no reconoce y se queda feo, hay que asignarle un icono con una llave o candado.
  • Hay que conseguir que sin que el programa esté abierto, cuando haces clic con el botón derecho sobre un archivo , salga la opción de criptopilla y dentro de esta [Encriptar, DesEncriptar] (igual que funciona WinRar, 7Zip, etc...)
  • Si intento abrir desde el explorador con doble clic un documento encriptado casca error por que no puede abrir el documento y debería de permitir abrir desencriptando (digo yo)


Saludos.


Normas del foro
Aprende a postear correctamente usando las etiquetas
Volver arriba
Ver perfil del usuario Enviar mensaje privado
WhiteSkull
CoAdmin


Registrado: 20 Mar 2009
Mensajes: 3136
Ubicación: y*width+x

Mensaje Publicado: Viernes 22 Jul 2011 11:44

Título del mensaje: Re: Proyecto - Proteger carpetas y documentos por contraseña

Responder citando

Vale TEsis, los cuatro primeros puntos lo miraré, aunque la idea, era que el usuario repitiera la clave para verificar que era es esa y no otra. El resto de puntos que mencionas, son parte del anterior proyecto que funciona bien, osea es el objeto COM que es registrado y que automáticamente registra la extension CRIP y despliega el menú contextual que comentas en el explorador. Por eso te comentaba que éste proyecto, el de encriptar/desencriptar, es parte de una solución que contiene dos proyectos.

Volver arriba
Ver perfil del usuario Enviar mensaje privado Visitar sitio web del autor
Tesis
Administrador


Registrado: 04 Mar 2007
Mensajes: 3230
Ubicación: Valencia - España

Mensaje Publicado: Viernes 22 Jul 2011 11:48

Título del mensaje: Re: Proyecto - Proteger carpetas y documentos por contraseña

Responder citando

OK, pero prefiero que te centres en el encriptado y después haremos esos retoques y los que se nos ocurran.

Me ha salido otro proyecto de posicionamiento para una empresa y me ha "jodido" el poco tiempo que pensaba tener.

Saludos.


Normas del foro
Aprende a postear correctamente usando las etiquetas
Volver arriba
Ver perfil del usuario Enviar mensaje privado
WhiteSkull
CoAdmin


Registrado: 20 Mar 2009
Mensajes: 3136
Ubicación: y*width+x

Mensaje Publicado: Lunes 08 Ago 2011 18:06

Título del mensaje: Re: Proyecto - Proteger carpetas y documentos por contraseña

Responder citando

Bueno, siento no haber dado señales de vida, pero entre que ando con líos de faldas y un problema tonto que me había surgido en la aplicación que estamos desarrollando, pues no veía como. Bueno lo último lo he solucionado, ya que al cambiar radicalmente el diseño, pues comencé haciendo un copy/paste de ésto y de lo otro, con el fin de aprovechar el código lo máximo posible (reutilización), pero claro ya cuando tenemos un motón de código, se hace difícil trabajar y se cometen errores tontos, como por ejemplo, cuando encriptabamos varios ficheros en diferentes escenarios de memoria, pues nos podía dar resultados dispares que se reflejaban sobre todo en el tamaño de los ficheros. Ya incluso estaba pensando que para solucionarlo debería optar por bloques fijos de memoria, pero no. Al final fue una cosa más tonta que ni se imaginan, cerrar el flujo de escritura y encriptación antes de escribir.

Miren que tuve que recurrir ayuda al foro de Microsoft, vaya vergüenza Risa .

http://social.msdn.microsoft.com/Forums/es-ES/vcses/thread/097dc51d-09df-4c75-9a1c-0def8d73eea9

Bueno, ahora de momento ya el terreno está más allanado, y espero acabar una versión de prueba funcional no conjunta con la librería COM que se pretendía, pero que finalmente se hará.

Nos vemos.

Volver arriba
Ver perfil del usuario Enviar mensaje privado Visitar sitio web del autor
Tesis
Administrador


Registrado: 04 Mar 2007
Mensajes: 3230
Ubicación: Valencia - España

Mensaje Publicado: Martes 09 Ago 2011 19:26

Título del mensaje: Re: Proyecto - Proteger carpetas y documentos por contraseña

Responder citando

WhiteSkull escribió:
Miren que tuve que recurrir ayuda al foro de Microsoft, vaya vergüenza Risa .

http://social.msdn.microsoft.com/Forums/es-ES/vcses/thread/097dc51d-09df-4c75-9a1c-0def8d73eea9

Como dice mi madre:
Cita:
El que tiene vergüenza ni come ni almuerza

JEjejejejejeje
No sé de que te avergüenzas, nadie sabe de todo, en ocasiones hay que solicitar ayuda a los que más usan el sistema que estás usando en ese momento y por eso no eres menos hombre Fumao Fumao Fumao (Es broma)
Me alegro de que te lo resolvieran.

He leído el hilo y me ha parecido bastante coherente... Cuando puedas lo pones en practica y nos cuentas.

Saludos.


Normas del foro
Aprende a postear correctamente usando las etiquetas
Volver arriba
Ver perfil del usuario Enviar mensaje privado
WhiteSkull
CoAdmin


Registrado: 20 Mar 2009
Mensajes: 3136
Ubicación: y*width+x

Mensaje Publicado: Miércoles 31 Ago 2011 14:55

Título del mensaje: Re: Proyecto - Proteger carpetas y documentos por contraseña

Responder citando

No, vergüenza del fallo, que era de principiante Triste .

Bueno he subido una nueva versión (1.3), en la que las barras de progreso toman más protagonismo (al encriptar y cargar un directorio en el explorador de ficheros), también incluí de prueba el funcionamiento del tiempo estimado. La parte de desencriptar funciona, pero no está todavía acabada.

Como siempre la falta de tiempo, impide que pueda estar horas delante de mi queridísimo Visual Studio. Espero que se animen a colaborar, por ejemplo acabando el dialogo de desencriptar, o corrigiendo los pequeños fallos, así como la recolección de excepciones no tratadas. Mientras podría guiaros si tuvieran alguna duda.

Bueno, esto es todo.
Saludos.

Volver arriba
Ver perfil del usuario Enviar mensaje privado Visitar sitio web del autor
Tesis
Administrador


Registrado: 04 Mar 2007
Mensajes: 3230
Ubicación: Valencia - España

Mensaje Publicado: Miércoles 31 Ago 2011 19:59

Título del mensaje: Re: Proyecto - Proteger carpetas y documentos por contraseña

Responder citando

Buen trabajo Ok Ok Ok
Lo miraré a ver como ha quedado y aportaré ideas (es lo único que puedo hacer "por ahora") ya que con mi inminente cambio de piso y mi mujer que se mueve como un gato de escayola por el embarazo, estoy dedicando muy poco tiempo al PC.


Ya te cuento cosas... Reir Amigos


Normas del foro
Aprende a postear correctamente usando las etiquetas
Volver arriba
Ver perfil del usuario Enviar mensaje privado
Tesis
Administrador


Registrado: 04 Mar 2007
Mensajes: 3230
Ubicación: Valencia - España

Mensaje Publicado: Jueves 03 Nov 2011 11:43

Título del mensaje: Re: Proyecto - Proteger carpetas y documentos por contraseña

Responder citando

Voy a escribir un mensaje en temas generales pidiendo colaboración para el proyecto de encriptación.
A ver si juntamos más gente y sacamos adelante el proyecto que WhiteSkull lo lleva 100% solo.

Veremos que sucede.
Saludos.


Normas del foro
Aprende a postear correctamente usando las etiquetas
Volver arriba
Ver perfil del usuario Enviar mensaje privado
WhiteSkull
CoAdmin


Registrado: 20 Mar 2009
Mensajes: 3136
Ubicación: y*width+x

Mensaje Publicado: Jueves 03 Nov 2011 16:11

Título del mensaje: Re: Proyecto - Proteger carpetas y documentos por contraseña

Responder citando

Gracias Tesis, de todas formas, es muy probable que el próximo mes tenga muchísimo tiempo libre y se lo dedique al proyecto, el cual de vez en cuando toco. Que por cierto, tengo un problemilla para averiguar la longitud de los datos encriptados. Puedo arreglarlo haciéndolo de la siguiente forma, creando un fichero encriptado, luego tomo su tamaño lo anoto, y paso el encriptado al fichero paquete, luego elimino el fichero anterior. Pegas... necesitamos espacio extra, determinado por el fichero que hay que encriptar, y aparte es lento, encriptar, copiar y luego eliminar. Buscaré otra forma, creo que si tengo tiempo lo pueda solucionar en un momento.

Información adicional:

Si, todos sabemos que usando el filestream, nos devuelve los datos transferidos con Lenght. Pero hasta que no es cerrado el fichero, continua la secuencia, ya que parte de los datos se encuentran en algún buffer o están en proceso de encriptación.

Volver arriba
Ver perfil del usuario Enviar mensaje privado Visitar sitio web del autor
weirdmix
Moderador Global


Registrado: 08 May 2008
Mensajes: 1385
Ubicación: Mérida - MEXICO

Mensaje Publicado: Lunes 07 Nov 2011 19:51

Título del mensaje: Re: Proyecto - Proteger carpetas y documentos por contraseña

Responder citando

al final como se resuelve este problema???
no tengo mucho tiempo para estar investigando esos detalles, preferiria avocarme a la programacion como tal, me ayudan??

saludos
Super Super Super

Tesis escribió:
He conseguido por mediación de un exprofesor mio, Visual Studio 2010 Ultimate.
Para que todos los miembros del grupo de trabajo usemos el mismo programa y así evitar problemas de compatibilidad puedo enviar el DVD por correo ordinario a las direcciones que me mandéis por MP (Si no lo queréis no pasa nada Guiño )

Respecto al programa, me parece un trabajo estupendo pero que tenemos que afinar en varios puntos que he visto.

Al ejecutarlo me manda este error:
Cita:
Error 1 No se encuentra el certificado de firma del manifiesto en el almacén de certificados.


Voy a terminar de leerme el código en estos días y os cuento cosas.
Saludos y gran trabajo. Ok Ok


------------------------------
WeirdMix
Colaborador y Moderador Global
Volver arriba
Ver perfil del usuario Enviar mensaje privado Enviar correo MSN Messenger
WhiteSkull
CoAdmin


Registrado: 20 Mar 2009
Mensajes: 3136
Ubicación: y*width+x

Mensaje Publicado: Martes 08 Nov 2011 12:44

Título del mensaje: Re: Proyecto - Proteger carpetas y documentos por contraseña

Responder citando

jajaja a ver weirdmix, el problema de la firma corresponde al primer proyecto de los dos que hay en la solución, que consiste en una librería que debe ser registrada en el GAC y que para ello, habrá que firmar para que el sistema sepa que es segura, con dicha librería podrás asociar en el menú contextual del explorador del sistema una extensión de fichero, pero esa parte está resuelta.

Ahora si quieres verla funcionando, debes incluir un fichero snk en la información del ensamblado, que es generado con la herramienta sn. Para incluir la firma puedes hacerlo desde el Visual Studio, en las propiedades del proyecto CriptopillaExt, en Firma, o como aparece en el enlace que puse con sn. Luego debes seguir los pasos que ya expliqué en una publicación anterior en este hilo.

El segundo proyecto, aunque por el orden, realmente es el primero, Criptopilla, es la aplicación en si, es la interfaz y demás componentes, es ahí donde estoy ahora trabajando y donde hay que meterle caña, para que cuando esté acabada, habrá que desligar la clase DialogoEncriptar y pasarla al proyecto de las extensiones, ya que la idea es que la aplicación sea solamente una interfaz que llame a la librería registrada.

Recuerda que debes ejecutar el proyecto y no toda la solución.

Volver arriba
Ver perfil del usuario Enviar mensaje privado Visitar sitio web del autor
weirdmix
Moderador Global


Registrado: 08 May 2008
Mensajes: 1385
Ubicación: Mérida - MEXICO

Mensaje Publicado: Martes 08 Nov 2011 18:11

Título del mensaje: Re: Proyecto - Proteger carpetas y documentos por contraseña

Responder citando

me imagine q era algo asi, por el registro de la libreria no tengo problemas, mas bien de donde obtengo la libreria para poder copiarla y registrarla, ese es el problema...
De hecho en el archivo q baje solo hay un proyecto y no 2.... seguramente ahi tambien esta el problema...

saludos y gracias.
Ok Ok Ok

WhiteSkull escribió:
jajaja a ver weirdmix, el problema de la firma corresponde al primer proyecto de los dos que hay en la solución, que consiste en una librería que debe ser registrada en el GAC y que para ello, habrá que firmar para que el sistema sepa que es segura, con dicha librería podrás asociar en el menú contextual del explorador del sistema una extensión de fichero, pero esa parte está resuelta.

Ahora si quieres verla funcionando, debes incluir un fichero snk en la información del ensamblado, que es generado con la herramienta sn. Para incluir la firma puedes hacerlo desde el Visual Studio, en las propiedades del proyecto CriptopillaExt, en Firma, o como aparece en el enlace que puse con sn. Luego debes seguir los pasos que ya expliqué en una publicación anterior en este hilo.

El segundo proyecto, aunque por el orden, realmente es el primero, Criptopilla, es la aplicación en si, es la interfaz y demás componentes, es ahí donde estoy ahora trabajando y donde hay que meterle caña, para que cuando esté acabada, habrá que desligar la clase DialogoEncriptar y pasarla al proyecto de las extensiones, ya que la idea es que la aplicación sea solamente una interfaz que llame a la librería registrada.

Recuerda que debes ejecutar el proyecto y no toda la solución.


------------------------------
WeirdMix
Colaborador y Moderador Global
Volver arriba
Ver perfil del usuario Enviar mensaje privado Enviar correo MSN Messenger
WhiteSkull
CoAdmin


Registrado: 20 Mar 2009
Mensajes: 3136
Ubicación: y*width+x

Mensaje Publicado: Miércoles 09 Nov 2011 13:49

Título del mensaje: Re: Proyecto - Proteger carpetas y documentos por contraseña

Responder citando

Así es, es probable que el proyecto que te falte sea la de la librería, el caso es que como antes te comenté, es un trabajo que ya está resuelto. De todas formas si quieres probarlo lo tienes publicado (todo el código) y los pasos para hacerla funcionar (porque no es un ejecutable, OJO), aquí: http://www.foro.lospillaos.es/viewtopic.php?p=17915#17915

Lo que me interesa es el asunto que antes te comentaba, cuando tenga tiempo, ya que estoy currando, facilitaré la versión con la que trabajo, posiblemente para diciembre que para entonces ya dejo de trabajar y seré parte de las estadísticas de uno de los muchos desempleados españoles Risa

Volver arriba
Ver perfil del usuario Enviar mensaje privado Visitar sitio web del autor
Responder al Tema Ir a página Anterior12345678Siguiente
Mostrar mensajes anteriores:   
Ir a:  
Todas las horas están en GMT + 2 Horas

Temas relacionados

Tema Autor Foros Respuestas Publicado
El foro no contiene ningún mensaje nuevo

Os presento mi proyecto de Renting Web

Renting Web Muestra tus trabajos Web 1 Miércoles 18 Sep 2019 12:30 Ver último mensaje
El tema está bloqueado: no pueden editarse ni agregar mensajes.

Solicito programadores para mi proyecto

alexpin Bolsa de trabajo 0 Miércoles 23 May 2018 22:53 Ver último mensaje
El foro no contiene ningún mensaje nuevo

Se requiere programador para Proyecto de Juego,...

Otilio Programación de juegos o videojuegos 5 Martes 03 Oct 2017 00:04 Ver último mensaje
El tema está bloqueado: no pueden editarse ni agregar mensajes.

Busco personas para un proyecto de Facebook

Andres Gonzales Bolsa de trabajo 0 Domingo 19 Mar 2017 22:35 Ver último mensaje
El foro no contiene ningún mensaje nuevo

mi proyecto de aprende programación

jaime hernandez ramirez Programación en general 0 Sábado 25 Feb 2017 03:29 Ver último mensaje
Panel de Control
No puede crear mensajes, No puede responder temas, No puede editar sus mensajes, No puede borrar sus mensajes, No puede votar en encuestas,