A List of Crypt Algorithms
I’m copying it here from Wikipedia - https://en.wikipedia.org/wiki/Crypt_(C), because it is almost impossible to find right away (not with lazy keywords like “md5 bcrypt yescrypt 2a shadow”). Man pages like https://man7.org/linux/man-pages/man3/crypt.3.html froze in time and the latest hash function is…SHA-512.
|2, 2a, 2b, 2x, 2y||bcrypt||$2a$10$VIhIOofSMqgdGlL4wzE//e.77dAQGqntF/1dT7bqCrVtquInWy2qi|
|8 (Cisco)||PBKDF2 with SHA256||$8$mTj4RZG8N9ZDOk$elY/asfm8kD3iDmkBe3hD2r4xcA/0oWS5V3os.O91u.|
|8 (JunOS)||PBKDF2||$8$crypt-algo$hash-algo$iterations$salt$iv$tag$encrypted $8$aes256-gcm$hmac-sha2-256$100$y/4YMC4YDLU$fzYDI4jjN6YCyQsYLsaf8A$Ilu4jLcZarD9YnyD /Hejww$okhBlc0cGakSqYxKww|
|sha1||PBKDF1 with SHA-1||$sha1$40000$jtNX3nZ2$hBNaIXkt4wBI2o5rsi8KejSjNqIq|
Blowfish (bcrypt) variants:
$2a$– The current key used to identify this scheme. Since a major security flaw was discovered in 2011 in a non-OpenBSD crypt_blowfish implementation of the algorithm, hashes indicated by this string are now ambiguous and might have been generated by the flawed implementation, or a subsequent fixed, implementation. The flaw may be triggered by some password strings containing non-ASCII (8th-bit-set) characters.
$2b$– Used by recent OpenBSD implementations to include a mitigation to a wraparound problem. Previous versions of the algorithm have a problem with long passwords. By design, long passwords are truncated at 72 characters, but there is a byte integer wraparound problem with certain password lengths resulting in weak hashes.
$2x$– A flag added after the crypt_blowfish bug discovery. Old hashes can be renamed to be $2x$ to indicate that they were generated with the broken algorithm. These hashes are still weak, but at least it’s clear which algorithm was used to generate them.
$2y$– A flag in crypt_blowfish to unambiguously use the new, corrected algorithm. On an older implementation suffering from the bug, $2y$ simply won’t work. On a newer, fixed implementation, it will produce the same result as using $2b$
$y$- yescrypt is an extension of scrypt ($7$) and a PHC finalist. It is used in several Linux distributions as an alternative to the existing schemes. To use this hash, the libcrypt from glibc is replaced with a backward-compatible one from the “libxcrypt” project.
$argon2ds$- These are PHC-assigned names for the Argon2 algorithm, but do not seem to be widely used.
Source: https://en.wikipedia.org/wiki/Crypt_(C). Contains also other very useful stuff.