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