Ajuda com lib crypt

zordlyon

Membro
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...
 
Back
Topo