Go to main content

man pages section 5: Standards, Environments, and Macros

Exit Print View

Updated: July 2017



crypt_unix - traditional UNIX crypt algorithm


The crypt_unix algorithm is the traditional UNIX crypt algorithm. It is not considered sufficiently secure for current systems and is provided for backwards compatibility. The crypt_sunmd5(5), crypt_bsdmd5(5), or crypt_bsdbf(5) algorithm should be used instead.

The algorithm identifier for policy.conf(4) is __unix__. There is no entry in crypt.conf(4) for this algorithm.

The crypt_unix algorithm is internal to libc and provides the string encoding function used by crypt(3C) when the first character of the salt is not a "$".

This algorithm is based on a one-way encryption algorithm with variations intended (among other things) to frustrate use of hardware implementations of a key search. Only the first eight characters of the key passed to crypt() are used with this algorithm; the rest are silently ignored. The salt is a two-character string chosen from the set [a-zA-Z0-9./]. This string is used to perturb the hashing algorithm in one of 4096 different ways.

The maximum password length for crypt_unix is 8 characters.


The return value of the crypt_unix algorithm might not be portable among standard-conforming systems. See standards(5).


See attributes(5) for descriptions of the following attributes:


See Also

passwd(1), crypt(3C), crypt_genhash_impl(3C), crypt_gensalt(3C), crypt_gensalt_impl(3C), getpassphrase(3C), crypt.conf(4), passwd(4), policy.conf(4), attributes(5), crypt_bsdbf(5), crypt_bsdmd5(5), crypt_sunmd5(5), standards(5)