Class MD5Crypt

java.lang.Object
  |
  +--MD5Crypt

public final class MD5Crypt
extends java.lang.Object

This class defines a method, crypt(), which takes a password and a salt string and generates an OpenBSD/FreeBSD/Linux-compatible md5-encoded password entry.

Created: 3 November 1999

Release: $Name: ganymede_107 $

Version: $Revision: 1.7 $

Last Mod Date: $Date: 2000/03/21 02:57:43 $

Java Code By: Jonathan Abbey, jonabbey@arlut.utexas.edu

Original C Version:

 ----------------------------------------------------------------------------
 "THE BEER-WARE LICENSE" (Revision 42):
  wrote this file.  As long as you retain this notice you
 can do whatever you want with this stuff. If we meet some day, and you think
 this stuff is worth it, you can buy me a beer in return.   Poul-Henning Kamp
 ----------------------------------------------------------------------------
 


Field Summary
private static java.lang.String itoa64
           
private static java.lang.String SALTCHARS
           
 
Constructor Summary
MD5Crypt()
           
 
Method Summary
private static int bytes2u(byte inp)
          convert an encoded unsigned byte value into a int with the unsigned value.
private static void clearbits(byte[] bits)
           
static java.lang.String crypt(java.lang.String password)
          This method actually generates a OpenBSD/FreeBSD/Linux PAM compatible md5-encoded password hash from a plaintext password and a salt.
static java.lang.String crypt(java.lang.String password, java.lang.String salt)
          This method actually generates a OpenBSD/FreeBSD/Linux PAM compatible md5-encoded password hash from a plaintext password and a salt.
static void main(java.lang.String[] argv)
          Command line test rig.
private static java.lang.String to64(long v, int size)
           
 
Methods inherited from class java.lang.Object
, clone, equals, finalize, getClass, hashCode, notify, notifyAll, registerNatives, toString, wait, wait, wait
 

Field Detail

SALTCHARS

private static final java.lang.String SALTCHARS

itoa64

private static final java.lang.String itoa64
Constructor Detail

MD5Crypt

public MD5Crypt()
Method Detail

main

public static void main(java.lang.String[] argv)
Command line test rig.

to64

private static final java.lang.String to64(long v,
                                           int size)

clearbits

private static final void clearbits(byte[] bits)

bytes2u

private static final int bytes2u(byte inp)
convert an encoded unsigned byte value into a int with the unsigned value.

crypt

public static final java.lang.String crypt(java.lang.String password)

This method actually generates a OpenBSD/FreeBSD/Linux PAM compatible md5-encoded password hash from a plaintext password and a salt.

The resulting string will be in the form '$1$<salt>$<hashed mess>

Parameters:
password - Plaintext password
Returns:
An OpenBSD/FreeBSD/Linux-compatible md5-hashed password field.

crypt

public static final java.lang.String crypt(java.lang.String password,
                                           java.lang.String salt)

This method actually generates a OpenBSD/FreeBSD/Linux PAM compatible md5-encoded password hash from a plaintext password and a salt.

The resulting string will be in the form '$1$<salt>$<hashed mess>

Parameters:
password - Plaintext password
salt - A short string to use to randomize md5. May start with $1$, which will be ignored. It is explicitly permitted to pass a pre-existing MD5Crypt'ed password entry as the salt. crypt() will strip the salt chars out properly.
Returns:
An OpenBSD/FreeBSD/Linux-compatible md5-hashed password field.