Получение хеш-значения пароля с помощью crypt(3)
#include <unistd.h>
#define _XOPEN_SOURCE
int main(int argc, char **argv){ /*argv[1] -- key; argv[2] -- salt*/
char* c=crypt(argv[1], argv[2]);
write(1, c, sizeof(c));
return 0;
}
В man-е сказано, что если нужно получить строку $6$salt$encryped (именно в таком виде она в файле /etc/shadow) необходимо передать ф-ии crypt() два аргумента: key и $6$salt$. При вызове программы ./a.out qwerty '$6$salt$' она просто возвращает второй аргумент.