The yescrypt code comes from yescrypt by Solar Designer . It builds upon Colin Percival's scrypt. See: http://openwall.com/yescrypt/ for reference. The bcrypt hash module comes from crypt_blowfish, originally written by Solar Designer and based on algorithms and ideas by Niels Provos and David Mazieres . The MD5, SHA256, and SHA512 hash modules, and the underlying secure-hash primitives, were originally written by Ulrich Drepper as part of the GNU C Library. Other people may also have contributed to them; our records are incomplete. The DES hash module was originally FreeSec, written by David Burren for the NetBSD project, and since extensively modified by Geoffrey M. Rehmet, Mark R V Murray, and Zack Weinberg. The NTHASH module comes from FreeBSD, originally written by Michael Bretterklieber and based on the password hashing algorithm used by the Windows NT LAN Manager (NTLM) from Microsoft Corporation to provide easier compatibility with NT accounts. The SUNMD5 hash module is a clean-room reimplementation by Zack Weinberg, based on a specification written by Eli Collins for the Passlib project, of an algorithm originally developed by Alec Muffett for use in Solaris 9. The crypt and gensalt backends for yescrypt and gost-yescrypt are by Vitaly Chikunov. The implementation of the public interface (crypt, crypt_r, etc) is a mashup of code from the GNU C Library with code from crypt_blowfish, originally put together by Thorsten Kukuk and since completely rewritten by Björn Esser and Zack Weinberg. The above components were assembled into this library by Thorsten Kukuk , Björn Esser , and Zack Weinberg .