|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectorg.apache.commons.codec.digest.Md5Crypt
public class Md5Crypt
The libc crypt() "$1$" and Apache "$apr1$" MD5-based hash algorithm.
Based on the public domain ("beer-ware") C implementation from Poul-Henning Kamp which was found at:
crypt-md5.c @ freebsd.org
Source:
$FreeBSD: src/lib/libcrypt/crypt-md5.c,v 1.1 1999/01/21 13:50:09 brandon Exp $
Conversion to Kotlin and from there to Java in 2012.
The C style comments are from the original C code, the ones with "//" from the port.
This class is immutable and thread-safe.
| Field Summary | |
|---|---|
(package private) static String |
APR1_PREFIX
The Identifier of the Apache variant. |
private static int |
BLOCKSIZE
The number of bytes of the final hash. |
(package private) static String |
MD5_PREFIX
The Identifier of this crypt() variant. |
private static int |
ROUNDS
The number of rounds of the big loop. |
| Constructor Summary | |
|---|---|
Md5Crypt()
|
|
| Method Summary | |
|---|---|
static String |
apr1Crypt(byte[] keyBytes)
See apr1Crypt(String, String) for details. |
static String |
apr1Crypt(byte[] keyBytes,
String salt)
See apr1Crypt(String, String) for details. |
static String |
apr1Crypt(String keyBytes)
See apr1Crypt(String, String) for details. |
static String |
apr1Crypt(String keyBytes,
String salt)
Generates an Apache htpasswd compatible "$apr1$" MD5 based hash value. |
static String |
md5Crypt(byte[] keyBytes)
Generates a libc6 crypt() compatible "$1$" hash value. |
static String |
md5Crypt(byte[] keyBytes,
String salt)
Generates a libc crypt() compatible "$1$" MD5 based hash value. |
static String |
md5Crypt(byte[] keyBytes,
String salt,
String prefix)
Generates a libc6 crypt() "$1$" or Apache htpasswd "$apr1$" hash value. |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
static final String APR1_PREFIX
private static final int BLOCKSIZE
static final String MD5_PREFIX
private static final int ROUNDS
| Constructor Detail |
|---|
public Md5Crypt()
| Method Detail |
|---|
public static String apr1Crypt(byte[] keyBytes)
apr1Crypt(String, String) for details.
RuntimeException - when a NoSuchAlgorithmException is caught. *
public static String apr1Crypt(byte[] keyBytes,
String salt)
apr1Crypt(String, String) for details.
IllegalArgumentException - if the salt does not match the allowed pattern
RuntimeException - when a NoSuchAlgorithmException is caught.public static String apr1Crypt(String keyBytes)
apr1Crypt(String, String) for details.
RuntimeException - when a NoSuchAlgorithmException is caught.
public static String apr1Crypt(String keyBytes,
String salt)
The algorithm is identical to the crypt(3) "$1$" one but produces different outputs due to the different salt prefix.
keyBytes - plaintext string that should be hashed.salt - salt string including the prefix and optionally garbage at the end. Will be generated randomly if
null.
IllegalArgumentException - if the salt does not match the allowed pattern
RuntimeException - when a NoSuchAlgorithmException is caught.public static String md5Crypt(byte[] keyBytes)
See Crypt.crypt(String, String) for details.
RuntimeException - when a NoSuchAlgorithmException is caught.
public static String md5Crypt(byte[] keyBytes,
String salt)
See Crypt.crypt(String, String) for details.
keyBytes - plaintext string that should be hashed.salt - salt string including the prefix and optionally garbage at the end. Will be generated randomly if
null.
IllegalArgumentException - if the salt does not match the allowed pattern
RuntimeException - when a NoSuchAlgorithmException is caught.
public static String md5Crypt(byte[] keyBytes,
String salt,
String prefix)
See Crypt.crypt(String, String) or apr1Crypt(String, String) for details.
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 | |||||||||