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".)