|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.apache.commons.codec.digest.Crypt
public class Crypt
GNU libc crypt(3) compatible hash method.
See crypt(String, String)
for further details.
This class is immutable and thread-safe.
Constructor Summary | |
---|---|
Crypt()
|
Method Summary | |
---|---|
static String |
crypt(byte[] keyBytes)
Encrypts a password in a crypt(3) compatible way. |
static String |
crypt(byte[] keyBytes,
String salt)
Encrypts a password in a crypt(3) compatible way. |
static String |
crypt(String key)
Calculates the digest using the strongest crypt(3) algorithm. |
static String |
crypt(String key,
String salt)
Encrypts a password in a crypt(3) compatible way. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public Crypt()
Method Detail |
---|
public static String crypt(byte[] keyBytes)
A random salt and the default algorithm (currently SHA-512) are used. See crypt(String, String)
for
details.
keyBytes
- plaintext password
RuntimeException
- when a NoSuchAlgorithmException
is caught.public static String crypt(byte[] keyBytes, String salt)
If no salt is provided, a random salt and the default algorithm (currently SHA-512) will be used. See
crypt(String, String)
for details.
keyBytes
- plaintext passwordsalt
- salt value
IllegalArgumentException
- if the salt does not match the allowed pattern
RuntimeException
- when a NoSuchAlgorithmException
is caught.public static String crypt(String key)
A random salt and the default algorithm (currently SHA-512) are used.
key
- plaintext password
RuntimeException
- when a NoSuchAlgorithmException
is caught.crypt(String, String)
public static String crypt(String key, String salt)
The exact algorithm depends on the format of the salt string:
The rest of the salt string is drawn from the set [a-zA-Z0-9./] and is cut at the maximum length of if a "$" sign is encountered. It is therefore valid to enter a complete hash value as salt to e.g. verify a password with:
storedPwd.equals(crypt(enteredPwd, storedPwd))
The resulting string starts with the marker string ($6$), continues with the salt value and ends with a "$" sign followed by the actual hash value. For DES the string only contains the salt and actual hash. It's total length is dependent on the algorithm used:
Example:
crypt("secret", "$1$xxxx") => "$1$xxxx$aMkevjfEIpa35Bh3G4bAc." crypt("secret", "xx") => "xxWAum7tHdIUw"
This method comes in a variation that accepts a byte[] array to support input strings that are not encoded in UTF-8 but e.g. in ISO-8859-1 where equal characters result in different byte values.
key
- plaintext password as entered by the usedsalt
- salt value
IllegalArgumentException
- if the salt does not match the allowed pattern
RuntimeException
- when a NoSuchAlgorithmException
is caught. *
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |