Shortly after java had its 1.0 debut (1995) I was working on a project that needed to authenticate unix passwords. I found some java-wrappers-around-native-code implementations but a pure java version didn't seem to exist.
I ended up finding some C code by Eric Young and just translated it line-by-line into java. Given that that task was not particularly entertaining I decided to spare others the fun I'd had by making my code available to anyone who wanted it.
Many people have contacted me over the years about including my code in various apps or packages. Some notable places it is either used or mentioned ...
- In the nist-hosted real-time control systems library jcrypt
- In the documentation for Sun's online java spaces book jcrypt
- In many other packages jcrypt
To compile the software: javac jcrypt.java
Here's an example showing how the software works ...
- From my /etc/password:
jdumas:BgU8DFSLhhz6Q:502:100:John F. Dumas:/home/jfd:/bin/bash
The "salt" is the first 2 letters of the encrypted password, which are "Bg" in this case.
- For this example, my password is "ncc1701d", so run the program:
java jcrypt Bg ncc1701d
- The program prints:
Salt: [Bg], Password: [ncc1701d] => [BgU8DFSLhhz6Q]