Please note that I have not written any of these classes. I have just collected and placed them here in the hope that it will help others searching for something similar.
Thanks to Craig Heath from Enhydra. He did some performance benchmarking which indicates that John Dumas's code runs more than an order of magnitude (45 times in fact) faster than David Scott's.
Thanks also to Kevin Caswick for his research efforts and providing additional links to Java versions of crypt.
- Password written by David Scott. This version is based on the DES encryption algorithm in Andrew Tanenbaum's book "Computer Networks".
- JCrypt written by John Dumas (based on work by Eric Young). Another version called Crypt can be found as part of the Habanero project at the National Center for Supercomputing Applications. It appears to be under a license that restricts commercial use.
- UnixCrypt unknown author (an extended version of JCrypt). There seems to be a copy of this class as part of the JAS project at Standford University. You can find the Javadoc for it here. It seems to imply that it is was based on John Dumas' code (the original link for it is missing though).
- There is also a UnixCrypt that is part of the Mortbay project written by Aki Yoshida. I have included a copy of it here if you wish to download it.
- Crypt was written by Michael Glad and Pawel Veselov. It is LGPL'd and you can get it from here or you can download a copy I've got from here. According to the source code it implements UFC crypt (ultra fast crypt implementation).
- Another version of Eric Young's and John Dumas' efforts can be found here or from a copy I have here. It has been optimised by Wes Biggs. The page falsely claims it is GPLed, but since it is a derivative of Eric Young's BSD licensed version, it can't be GPLed without Eric Young's permission. Thanks kevin for that note.
- Here's a javascript implementation if anyone wants to do this completely in a browser. Thanks to Jeff Walden, the author.
You may also want to check out the cryptix package.