|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.apache.commons.codec.digest.UnixCrypt
public class UnixCrypt
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.
Field Summary | |
---|---|
private static int[] |
CON_SALT
|
private static int[] |
COV2CHAR
|
private static char[] |
SALT_CHARS
|
private static boolean[] |
SHIFT2
|
private static int[][] |
SKB
|
private static int[][] |
SPTRANS
|
Constructor Summary | |
---|---|
UnixCrypt()
|
Method Summary | |
---|---|
private static int[] |
body(int[] schedule,
int eSwap0,
int eSwap1)
|
private static int |
byteToUnsigned(byte b)
|
static java.lang.String |
crypt(byte[] original)
Generates a crypt(3) compatible hash using the DES algorithm. |
static java.lang.String |
crypt(byte[] original,
java.lang.String salt)
Generates a crypt(3) compatible hash using the DES algorithm. |
static java.lang.String |
crypt(java.lang.String original)
Generates a crypt(3) compatible hash using the DES algorithm. |
static java.lang.String |
crypt(java.lang.String original,
java.lang.String salt)
Generates a crypt(3) compatible hash using the DES algorithm. |
private static int |
dEncrypt(int el,
int r,
int s,
int e0,
int e1,
int[] sArr)
|
private static int[] |
desSetKey(byte[] key)
|
private static int |
fourBytesToInt(byte[] b,
int offset)
|
private static int |
hPermOp(int a,
int n,
int m)
|
private static void |
intToFourBytes(int iValue,
byte[] b,
int offset)
|
private static void |
permOp(int a,
int b,
int n,
int m,
int[] results)
|
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
private static final int[] CON_SALT
private static final int[] COV2CHAR
private static final char[] SALT_CHARS
private static final boolean[] SHIFT2
private static final int[][] SKB
private static final int[][] SPTRANS
Constructor Detail |
---|
public UnixCrypt()
Method Detail |
---|
public static java.lang.String crypt(byte[] original)
As no salt is given, a random one will be used.
original
- plaintext password
public static java.lang.String crypt(byte[] original, java.lang.String salt)
Using unspecified characters as salt results incompatible hash values.
original
- plaintext passwordsalt
- a two character string drawn from [a-zA-Z0-9./] or null for a random one
java.lang.IllegalArgumentException
- if the salt does not match the allowed patternpublic static java.lang.String crypt(java.lang.String original)
As no salt is given, a random one is used.
original
- plaintext password
public static java.lang.String crypt(java.lang.String original, java.lang.String salt)
original
- plaintext passwordsalt
- a two character string drawn from [a-zA-Z0-9./] or null for a random one
java.lang.IllegalArgumentException
- if the salt does not match the allowed patternprivate static int[] body(int[] schedule, int eSwap0, int eSwap1)
private static int byteToUnsigned(byte b)
private static int dEncrypt(int el, int r, int s, int e0, int e1, int[] sArr)
private static int[] desSetKey(byte[] key)
private static int fourBytesToInt(byte[] b, int offset)
private static int hPermOp(int a, int n, int m)
private static void intToFourBytes(int iValue, byte[] b, int offset)
private static void permOp(int a, int b, int n, int m, int[] results)
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |