Caution: This version of this document is no longer maintained. For the latest documentation, see


Encrypt a password


#include <unistd.h>

char * crypt( const char * key, 
              const char * salt );


A NUL-terminated string (normally a password typed by a user).
A two-character string chosen from the set [a-zA-Z0-9./]. This function doesn't validate the values for salt, and values outside this range may cause undefined behavior. This string is used to perturb the algorithm in one of 4096 different ways.



Use the -l c option to qcc to link against this library. This library is usually included automatically.

Note: This function is in libc.a, but not in (in order to save space).


The crypt() function performs password encryption. It's based on the Data Encryption Standard algorithm, and also includes code to deter key search attempts.

Note: This function checks only the first eight characters of key.

You can obtain a 56-bit key by taking the lowest 7 bits of key. The 56-bit key is used to repeatedly encrypt a constant string (usually all zeroes).


A pointer to the 13-character encrypted value, or NULL on failure. The first two characters of the encrypted value are the salt itself.


POSIX 1003.1 XSI

Cancellation point No
Interrupt handler No
Signal handler No
Thread No


The return value points to static data that's overwritten by each call to crypt().

See also:

encrypt(), getpass(), qnx_crypt(), setkey()

login in the Utilities Reference

Copyright © MINIX Operating System