org.apache.commons.codec.digest
Class UnixCrypt

java.lang.Object
  extended by org.apache.commons.codec.digest.UnixCrypt

public class UnixCrypt
extends Object

Unix crypt(3) algorithm implementation.

This class only implements the traditional 56 bit DES based algorithm. Please use DigestUtils.crypt() for a method that distinguishes between all the algorithms supported in the current glibc's crypt().

The Java implementation was taken from the JetSpeed Portal project (see org.apache.jetspeed.services.security.ldap.UnixCrypt).

This class is slightly incompatible if the given salt contains characters that are not part of the allowed range [a-zA-Z0-9./].

This class is immutable and thread-safe.

Since:
1.7
Version:
$Id: UnixCrypt.html 889935 2013-12-11 05:05:13Z ggregory $

Constructor Summary
UnixCrypt()
           
 
Method Summary
static String crypt(byte[] original)
          Generates a crypt(3) compatible hash using the DES algorithm.
static String crypt(byte[] original, String salt)
          Generates a crypt(3) compatible hash using the DES algorithm.
static String crypt(String original)
          Generates a crypt(3) compatible hash using the DES algorithm.
static String crypt(String original, String salt)
          Generates a crypt(3) compatible hash using the DES algorithm.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

UnixCrypt

public UnixCrypt()
Method Detail

crypt

public static String crypt(byte[] original)
Generates a crypt(3) compatible hash using the DES algorithm.

As no salt is given, a random one will be used.

Parameters:
original - plaintext password
Returns:
a 13 character string starting with the salt string

crypt

public static String crypt(byte[] original,
                           String salt)
Generates a crypt(3) compatible hash using the DES algorithm.

Using unspecified characters as salt results incompatible hash values.

Parameters:
original - plaintext password
salt - a two character string drawn from [a-zA-Z0-9./] or null for a random one
Returns:
a 13 character string starting with the salt string
Throws:
IllegalArgumentException - if the salt does not match the allowed pattern

crypt

public static String crypt(String original)
Generates a crypt(3) compatible hash using the DES algorithm.

As no salt is given, a random one is used.

Parameters:
original - plaintext password
Returns:
a 13 character string starting with the salt string

crypt

public static String crypt(String original,
                           String salt)
Generates a crypt(3) compatible hash using the DES algorithm.

Parameters:
original - plaintext password
salt - a two character string drawn from [a-zA-Z0-9./] or null for a random one
Returns:
a 13 character string starting with the salt string
Throws:
IllegalArgumentException - if the salt does not match the allowed pattern


Copyright © 2002-2013 The Apache Software Foundation. All Rights Reserved.