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

Ajuda com lib crypt

Discussão em 'Programação' iniciada por zordlyon, 5 de Maio de 2009. (Respostas: 0; Visualizações: 527)

  1. Boas pessoal, eu sou estudante de 1º ano de licenciatura e estou a fazer um programa de encriptação de passwords, e o prof disse que tinha que utilizar a biblioteca crypt...

    Vamos a ver se consigo explicar ;)

    so que e o seguinte eu ja fiz e tal umas cenas mas nao consigo fazer uma função para encriptar e guardar num ficheiro, e criar outra funçao para desencriptar e ler numa lista as passwords e a sua descricção...

    o que ja fiz para encriptar foi o seguinte:
    Código:
      char * gerar_pass (char * password, int n) {
      unsigned long seed[2];
      char * passwor;
      char salt[] = "$1$........"; // usado para encriptar
      const char *const seedchars =
        "0123456789ABCDEFGHIJKLMNOPQRST"
        "UVWXYZabcdefghijklmnopqrstuvwxyz";
      int i;
      seed[0] = time(NULL);
      seed[1] = getpid() ^ (seed[0] >> 14 & 0x30000);
      for (i = 0; i < n; i++)
          password[i] = seedchars[(seed[i/5] >> (i%5)*6) & 0x3f];
          password[i]='\0';
          passwor = crypt(getpass ("%s"), salt);
       puts(password);
       return 0;
      }
    e para guardar num ficheiro tenho esta função:

    Código:
    void guardar_vector_em_ficheiro(struct informadicional listac[], int n, char* nome_ficheiro){
    
        FILE * fp;
        fp= fopen(nome_ficheiro, "ab");
        if(fp != 0){
                fwrite(listac, sizeof(listac[0]), n, fp);
        }
        fclose(fp);
    
    }
    o que eu queria era saber como juntar estas 2 funções numa só, o programa tem mais ou menos este aspecto grafico para esta função:

    Primeira opção:

    [1]Gerar password aleatoria
    <Clicar em 1>

    //gera um aleatoriamente uma password
    Passwordteste

    //descricção do local da password
    Descreva o local da sua password, como por exemplo 'email da gmail'
    _

    <enter>
    //encripta, guarda a password encriptada num *.txt e mostra a mensagem:
    Password guardada com sucesso!!!


    ------------------//----------------------------

    e tenho esta função para ver a lista das passwords contidas no ficheiro *.txt mas nao sei como desencriptar para depois ver esta lista...

    Código:
    void ver_lista_e_informadicional (struct informadicional * novoc){
        printf("Password:"); gets(novoc->password);
        printf("Descriccao:"); gets(novoc->descricao);
    }
    Segunda Opção:

    [2]Veja a sua lista de passwords
    <clicar em 2>

    //desencripta e mostra a lista de passwords e a sua respectiva descrição

    [1]
    Password: Passwordteste
    Descricção: Password usada para pedir ajuda no zwane :D (sem o smile)
    ----------------------------------------------------------------------
    [2]
    Password: passwordteste2
    descricção: password . . . (blabla)



    Agora agradecia que me ajudassem em como fazer 2 funções com os seguintes aspectos:

    1ª função
    -> Encripta e guarda num ficheiro *.txt ou *.dat

    2ª Função
    -> Desencripta e mostra a lista de passwords


    (Ja li noutros post's e nao quero que o assim entendam neste, eu nao estou a pedir a ninguem que me faça isto, estou so a pedir ajuda para me explicarem como faze-lo ou dar ideias nao sei)

    Agradeço a vossa colaboração, obrigado...
     

Partilhar esta Página