(toiminnot)

hwechtla-tl: Nettipäiväkirja 04.06.2015

Kierre.png

Mikä on WikiWiki?
nettipäiväkirja
koko wiki (etsi)
viime muutokset


Jos joskus haluat komentoriviltä kryptata salasanan perinteisellä Unix-kryptillä, htpasswd tekee homman. Mutta jos haluat sille juuri tietyn saltin (esim. verrataksesi tulosta jossain tietokannassa olevaan kryptattuun salasanaan), ei valmista utilia taida olla. Tässä on kevyt wrapperi crypt()-kirjastokutsun ympärille:

#define _XOPEN_SOURCE
#include <unistd.h>
#include <stdlib.h>
#include <stdio.h>

int main(int ac, char *av[])
{
        if (ac < 3) exit(1);
        printf("%s crypted by salt %s: %s\n",
                        av[1], av[2], crypt(av[1], av[2]));
        return 0;
}

Sitä käytetään esimerkiksi näin (meillä on foo-tiedostossa käyttäjä, jonka salasanasta haluamme katsoa, onko se "omppu" tai "himppu"):

$ cat foo 
kayttaja:.jTXPhitqPj9s
$ ./crypt omppu .j
omppu crypted by salt .j: .jqa2usEHbGlU
$ ./crypt himppu .j
himppu crypted by salt .j: .jTXPhitqPj9s

(Mistä ".j" tulee? crypt()illä hashatussa salasanassa kaksi ensimmäistä merkkiä ovat aina suola, eli se on otettu käyttäjän salasanan alusta foo-tiedostossa. Mistä tietää, onko salasana "himppu"? Siitä, että kun kryptaa samalla suolalla kuin salasanatiedostossa, lopputulos on sama eli ".jTXPhitqPj9s".)


kommentoi (viimeksi muutettu 04.06.2015 12:44)