Avatar billede sarid Nybegynder
26. februar 2002 - 18:08 Der er 4 kommentarer og
1 løsning

DES crypt funktion under Linux

Jeg vil bare ved hvordan jeg kan bruge funktionen crypt (DES password krypteringsfunktion som bruges under Linux til kryptering af bruger passwords) i mine egne programmer. Det eneste jeg ved er dem jeg har læst i man crypt
Avatar billede brilleaben Nybegynder
26. februar 2002 - 19:03 #1
Ja?  Og hvad er det du ikke forstår?
Avatar billede sarid Nybegynder
26. februar 2002 - 19:05 #2
Kompileren kender ikke funktionen crypt selvom jeg bruger includefilen, som står i man crypt.
Avatar billede sarid Nybegynder
26. februar 2002 - 19:06 #3
Denne includefil:

#include <unistd.h>
Avatar billede brilleaben Nybegynder
26. februar 2002 - 19:38 #4
Man-siden er lidt (<ahem>) misvisende :-)

Dette virker for mig:

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
#include <stdio.h>
#define __USE_XOPEN
#include <unistd.h>

int
main(int argc,
    char *argv[])
{
    char *salt="a9";
    char *key="Secret";

    printf("%s\n", crypt(key, salt));
    exit(0);
}


Kompileres med:

gcc -Wall -O2 -o crtest crtest.c -lcrypt

Output når programmet køres er:

a9sdK.nqgQTZg


Håber det hjælper ...


Og ja, salt værdien er de to første tegn i output.  For at checke et kodeord i eks /etc/shadow mod et plaintext password er:

1) Læs salt værdien fra passwordet i /etc/shadow (de to første bytes)
2) encpassword=crypt(plaintextpassword, salt_fra_step_1);
3) if (strcmp(encpassword, password_fra_step_1))
      printf("mismatch");
  else
      printf("match");
Avatar billede sarid Nybegynder
26. februar 2002 - 22:00 #5
Det virker :-) Tak for hjælpen.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester