1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

[vb6] Ficheiro protegido por password

Discussão em 'Programação' iniciada por WinAce_Boy, 8 de Janeiro de 2007. (Respostas: 16; Visualizações: 1697)

  1. WinAce_Boy

    WinAce_Boy Power Member

    Vou começar a construir um programa que quando se abre um determinado ficheiro/pasta, ele executa-se e pede uma password, se estiver certa então o utilizador poderá aceder à pasta/ficheiro, senão terminará assim como a aplicação que era suposto abrir quando se punha a password correcta.
    Agradeceria qualquer tipo de ajuda mas de preferência o mais rápido possível p.f. ;).
    Obrigadão pela atenção..
    Abraços..
     
  2. MarcosFonseca

    MarcosFonseca Power Member

    podias ser mais especifico??:S

    cumps
     
  3. WinAce_Boy

    WinAce_Boy Power Member

    OK..
    lol, enganei-me, peço desculpas.. penso que agora está correcto.
    Então é assim:

    1º- Quando o utilizador tenta abrir o ficheiro(clika duas vezes sobre ele) o meu programa aparece, e não deixa o user prosseguir com a abertura do ficheiro até que ponha a password correcta(numa textbox que se encontrará no meu programa);

    2º- Se o user puser a password correcta, o meu programa fecha-se e deixa o user abrir o ficheiro(uma só vez- na próxima vez que tentar abrir o ficheiro terá de pôr outra vez a password):

    3º- Se a password não estiver correcta, ele(o meu programa) não deixa o utilizador prosseguir com a abertura do ficheiro.

    Não sei o que usar nem como o fazer por isso preciso de uma ajuda..

    Mais uma vez peço desculpa.
    Abraços;)
     
    Última edição: 8 de Janeiro de 2007
  4. MarcosFonseca

    MarcosFonseca Power Member

    Boas..
    Agora já entendi...era um bom programa, digo-te já, mas penso que para isso tinhas que perguntar ao Sr. Bill Gates :p ...lol
    Não sei se será possível...
    Vamos aguardar resposta, pk também gostava de saber...

    cumps
     
  5. Kayvlim

    Kayvlim Undefined Moderator
    Staff Member

    Boas!

    Portanto, queres proteger alguns ficheiros do teu pc com password, correcto?
    Eu fiz um programa assim, mas foi um projecto relativamente grande para quem tem poucos conhecimentos.

    Acho que a forma mais segura de o fazer será encriptando o ficheiro. Portanto, o próprio conteúdo do ficheiro não vale nada. Precisas da pass para o descodificar.

    Tens duas maneiras de o fazer:
    1) Inventas uma extensão, e.g. "ficheiro_encriptado.WAB" (WinAce_Boy :-D), e regista-la, de modo a que um duplo clique sobre um ficheiro abra o teu encriptador/desencriptador de forma a ele pedir password e descodificar o ficheiro se ela estiver correcta.
    2) O utilizador tem de abrir o desencriptador manualmente, escolher o ficheiro, dar a pass que o desencriptador faz o trabalho.

    Como o fazer?

    Se tiveres conhecimentos de file input/output, uma forma simples de o fazer será abrir o ficheiro binariamente, e encriptar cada byte com um algoritmo. Eu, pessoalmente, uso o RC4 (que pelos vistos chama-se "Arc4" para uso não-comercial). "Pegas" em cada byte do ficheiro, chamas a função do algoritmo que, dada a password, encripta-o e grava-o no disco. Depois, o procedimento repete-se, mas do modo inverso para a desencriptação.

    Tens muita coisa a ter em conta.
    Só algumas coisas que precisas de saber:
    - API de manipulação do registry (e conhecimentos para a sua alteração segura)
    - File I/O (saber abrir e mexer em ficheiros no modo binário)
    - Saber trabalhar com funções

    Pensa em cada passo que um programa desses teria de ter. Imagina!
    Não é a password que deixa ou não o utilizador abrir o ficheiro. A password é a única coisa que torna o ficheiro legível ;) não é bem a mesma coisa.

    Vou-te deixar a pensar nisso por um bocado :) se precisares de mais ajuda, estou cá! (e já li a tua PM ;))

    Cumprimentos [[[[[[[[]]]]]]]]
    angelofwisdom

    edit - @ MarcosFonseca, mas é claro que é possível :) e o sr.Bill Gates só teve uma boa ideia. De bom programador, que eu saiba, ele (já) não tem nada.
     
  6. WinAce_Boy

    WinAce_Boy Power Member

    Oi..
    O programa que estou a construir não é para mim.. É para um amigo meu da escola e andamos na mesma turma do 9º ano. Não dava muito jeito ele andar lá a fazer essas coisas todas: -Instalar o "Arc4", andar lá com grandes trabalheiras.. E aviso desde já que ele não é lá de ter muita paciência. Tudo o que disseste ajudou muito mas se houver outra maneira mais simples do tipo: - Abre-se o ficheiro junta e automaticamente abre o meu programa a perguntar a password, e sobrepõe-se a tudo. Até não se pôr a password correcta ele continuará assim, não deixando visualizar o ficheiro e até não fechar o meu programa com o gestor de tarefas ou com "%+F4" e se souberem mais maneiras de fechá-lo digam para eu evitá-las plz.
    Axo que tá tudo.
    Desculpa lá angelofwisdom, mas não estava mesmo á espera dessa maneira... Não fiques ofendido man, mas se houver uma maneira mais simples de trabalhar ;).
    Abraços a todos..
     
  7. Kayvlim

    Kayvlim Undefined Moderator
    Staff Member

    É assim... sem ofensa digo eu, mas não te posso dizer como evitar que um programa seja desligado, já que acabo por disponibilizar essa informação a quem tiver outras intenções, e é um princípio meu não o fazer ;)
    --------
    9º ano? Então presumo que a tua idade no perfil não esteja correcta :rolleyes:
    --------
    Eu vou tentar resumir isto o melhor possível, de modo a ambos nos percebermos:

    Vais fazer um programa. O seu objectivo será impedir que alguém leia um ficheiro sem antes escrever a devida password, correcto? Isto é, se tiveres algum ficheiro com conteúdo importante, não pode estar acessível a "terceiros". Até aqui, estou correcto?

    Já agora, eu tenho a função que te facilita o trabalho de Arc4. Não é nada de instalar. É apenas uma função, para a qual passas uma string e uma password, e ele encripta. A mesma função faz exactamente o contrário - passas uma string encriptada com a password correcta, e ela desencripta-a.
     
  8. WinAce_Boy

    WinAce_Boy Power Member

    Define "terceiros" p.f...
    Sim, até aqui estás correcto.
     
  9. Kayvlim

    Kayvlim Undefined Moderator
    Staff Member

    LOOOL! Terceiros são pessoas que podem vir a ter acesso ao ficheiro, mas que não o devem ler. Por outras palavras, se o ficheiro fosse, por exemplo, um diário pessoal (portanto, ninguém poderia ter acesso a ele), e fosse apanhado por alguém, seria ilegível por esse alguém.

    É assim, quando dás duplo clique num ficheiro .TXT, o windows automaticamente chama o notepad para abrir esse ficheiro. O que podes fazer é ter um ficheiro com um formato teu específico, e registá-lo de modo a que o windows, ao dares duplo clique, chame o teu programa para o abrir :)

    Se não quiseres dar-te ao trabalho de registar uma extensão (sei a teoria, mas nunca o fiz na prática), podes simplesmente "ter" os ficheiros, mas não poder vê-los.
    Então, abres o teu programa, escolhes o ficheiro, e desencripta-lo.

    Eu sinceramente acho o procedimento bastante fácil.
    Abres o ficheiro
    Lês buffers de x kB (32 normalmente)
    bufferencriptado = ARC4(buffer, password)
    Gravas o bufferencriptado no ficheiro de destino
    Repetes o procedimento
    Apagas o ficheiro de origem
    Renomeias o de destino para o de origem.

    Acho que é só isso. Se bem que pode trazer problemas em termos de segurança, penso que o facto de poder deixar "vestígios" que apenas são notáveis a profissionais não é uma falha de segurança muito grande.

    Queres seguir este método? Eu não conheço outro :x e já fiz isto tudo (excepto registar extensões)

    Cumps [[[[[[]]]]]]
    angelofwisdom
     
  10. WinAce_Boy

    WinAce_Boy Power Member

    Oi, tenho as seguintes dúvidas:

    1º- Como registo a extenção?;
    2º- Quais os programas grátis sem serem trial ou demos, sobre encriptação recomendados?;
    3º- Como se lê buffers?;
    3º- O que é bufferencriptar?
     
  11. Kayvlim

    Kayvlim Undefined Moderator
    Staff Member

    1º - Não sei ao certo. Em teoria, é criares uma nova chave no registry. Na prática, nunca fiz...
    2º - Não os consideres "programas". São algoritmos. O RC4 é grátis para uso pessoal (não o podes espalhar na net, mas podes passar a amigos sem problemas, penso eu)
    3º - Um buffer é uma string. Podes fazer uma string de 100 bytes, e alocas portanto 100 bytes do ficheiro para a string, encriptas esses 100 bytes, e gravas os 100 bytes encriptados para o destino. Um buffer não é mais do que um espaço alocado na memória para poderes "mexer" na string. Ok, é, mas eu não te sei explicar melhor :x Se alocares 100 bytes, é o que te disse, e o mesmo se passa se alocares 1000 bytes.
    4º (acho que era isto :P ) - bufferencriptar e bufferencriptado eram nomes de variáveis que inventei :x

    Variável = Função(argumento1, argumento2, argumento3) certo?
    então
    StringEncriptada = FunçãoQueEncriptaAString(StringAEncriptar, Password)
    resultado:
    bufferencriptado = ARC4(buffer, password)

    Não te consigo dar explicações muito mais pormenorizadas...

    Cumps [[[[[[]]]]]]
    angelofwisdom
     
  12. HecKel

    HecKel The WORM

  13. WinAce_Boy

    WinAce_Boy Power Member

    Agradecia algumas dicas de como arranjar e qual a versão do RC4 p.f.. ;)
     
  14. Complex

    Complex Power Member

    Boas,

    sera que é este ou este o ficheiro que queres? Para o caso de ter ficado alguma duvida tens sempre a Wiki . :) Para o caso de haver alguma dificuldade com o ingles existe a versao em pt , menos detalhada mas mesmo assim pode ser que sirva...Espero ter ajudado.

    [[[[[[]]]]]]
     
  15. flaviorodrigues

    flaviorodrigues Power Member

    Nao sei se e isto, se queres um programa em vb onde peça password, fazes algo tipo
    Crias um form, poes duas labels, uma que diga username, outra que diga passord
    Poes duas caixas de texto, logico, e um botao continuar por exemplo
    vais ao codigo do botao continuar e fazes algo tipo
    If text1.text = "nomedoysername" and text2.text = "nomedapassword" then
    'Linha de codigo que qyeres que faça tipo abrir um file
    Shell notepad
    Else
    msgbox " Dados errados bla bla"
    end if

    Deve ser algo tipo isto, eu nao testei, fis o code aqui so

    Abraço, espero ter sido util
     
  16. Kayvlim

    Kayvlim Undefined Moderator
    Staff Member

    Se reparares, ele quer que o ficheiro seja ilegível. Logo, não pode ser o programa a decidir se abre o ficheiro ou não, já que outro programa qualquer pode abri-lo. A solução aqui, penso que é mesmo só encriptando.

    Cumps [[[[[]]]]]
    angelofwisdom
     
  17. flaviorodrigues

    flaviorodrigues Power Member

    ya, ja percebi, pois so mmso assim! isso ja n sei
     

Partilhar esta Página