You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by tn...@apache.org on 2012/08/17 20:44:06 UTC
svn commit: r1374394 - in
/commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/digest:
Crypt.java Md5Crypt.java Sha2Crypt.java UnixCrypt.java
Author: tn
Date: Fri Aug 17 18:44:06 2012
New Revision: 1374394
URL: http://svn.apache.org/viewvc?rev=1374394&view=rev
Log:
Javadoc cleanup of new crypt classes.
Modified:
commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/digest/Crypt.java
commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/digest/Md5Crypt.java
commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/digest/Sha2Crypt.java
commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/digest/UnixCrypt.java
Modified: commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/digest/Crypt.java
URL: http://svn.apache.org/viewvc/commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/digest/Crypt.java?rev=1374394&r1=1374393&r2=1374394&view=diff
==============================================================================
--- commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/digest/Crypt.java (original)
+++ commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/digest/Crypt.java Fri Aug 17 18:44:06 2012
@@ -20,7 +20,7 @@ import org.apache.commons.codec.Charsets
/**
* GNU libc crypt(3) compatible hash method.
- *
+ * <p>
* See {@link #crypt(String, String)} for further details.
*
* <p>This class is immutable and thread-safe.</p>
@@ -32,13 +32,13 @@ public class Crypt {
/**
* Encrypts a password in a crypt(3) compatible way.
- *
+ * <p>
* A random salt and the default algorithm (currently SHA-512) are used. See
* {@link #crypt(String, String)} for details.
*
* @param keyBytes
- * The plaintext password.
- * @return The hash value.
+ * plaintext password
+ * @return hash value
*/
public static String crypt(byte[] keyBytes) throws Exception {
return crypt(keyBytes, null);
@@ -46,15 +46,15 @@ public class Crypt {
/**
* Encrypts a password in a crypt(3) compatible way.
- *
+ * <p>
* A random salt and the default algorithm (currently SHA-512) are used. See
* {@link #crypt(String, String)} for details.
*
* @param keyBytes
- * The plaintext password.
+ * plaintext password
* @param salt
- * The salt value
- * @return The hash value.
+ * salt value
+ * @return hash value
*/
public static String crypt(byte[] keyBytes, String salt) throws Exception {
if (salt == null) {
@@ -72,13 +72,13 @@ public class Crypt {
/**
* Calculates the digest using the strongest crypt(3) algorithm.
- *
+ * <p>
* A random salt and the default algorithm (currently SHA-512) are used.
*
* @see #crypt(String, String)
* @param key
- * The plaintext password.
- * @return The hash value.
+ * plaintext password
+ * @return hash value
*/
public static String crypt(String key) throws Exception {
return crypt(key, null);
@@ -96,18 +96,22 @@ public class Crypt {
* <li>DES, the traditional UnixCrypt algorithm is used else with only 2 chars
* <li>Only the first 8 chars of the passwords are used in the DES algorithm!
* </ul>
- * The magic strings "$apr1$" and "$2a$" are not recognised by this method as its output should be identical with
- * that of the libc implementation.
+ * The magic strings "$apr1$" and "$2a$" are not recognised by this method as its
+ * output should be identical with that of the libc implementation.
*
* <p>
- * 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 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:
+ *
+ * <pre>
+ * storedPwd.equals(crypt(enteredPwd, storedPwd))
+ * </pre>
*
* <p>
- * 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 toal length is
- * dependend on the algorithm used:
+ * 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:
* <ul>
* <li>SHA-512: 106 chars
* <li>SHA-256: 63 chars
@@ -123,15 +127,16 @@ public class Crypt {
* crypt("secret", "xx") => "xxWAum7tHdIUw"
* </pre>
*
- * 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.
+ * <p>
+ * 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.
*
* @see "The man page of the libc crypt (3) function."
* @param key
- * The plaintext password as entered by the used.
+ * plaintext password as entered by the used
* @param salt
- * The salt value
- * @return The hash value i.e. encrypted password including the salt string
+ * salt value
+ * @return hash value, i.e. encrypted password including the salt string
*/
public static String crypt(String key, String salt) throws Exception {
return crypt(key.getBytes(Charsets.UTF_8), salt);
Modified: commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/digest/Md5Crypt.java
URL: http://svn.apache.org/viewvc/commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/digest/Md5Crypt.java?rev=1374394&r1=1374393&r2=1374394&view=diff
==============================================================================
--- commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/digest/Md5Crypt.java (original)
+++ commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/digest/Md5Crypt.java Fri Aug 17 18:44:06 2012
@@ -29,15 +29,12 @@ import org.apache.commons.codec.Charsets
* Based on the public domain ("beer-ware") C implementation from Poul-Henning Kamp which was found at:
* </p>
* <p>
- * http://www.freebsd.org/cgi/cvsweb.cgi/src/lib/libcrypt/crypt-md5.c?rev=1.1;content-type=text%2Fplain</br>
+ * http://www.freebsd.org/cgi/cvsweb.cgi/src/lib/libcrypt/crypt-md5.c?rev=1.1;content-type=text%2Fplain<br/>
* Source: $FreeBSD: src/lib/libcrypt/crypt-md5.c,v 1.1 1999/01/21 13:50:09 brandon Exp $
* </p>
- * <p>
- * Conversion to Kotlin and from there to Java in 2012.
- * </p>
- * <p>
- * The C style comments are from the original C code, the ones with "//" from the port.
- * </p>
+ * <p>Conversion to Kotlin and from there to Java in 2012.</p>
+ *
+ * <p>The C style comments are from the original C code, the ones with "//" from the port.</p>
*
* <p>This class is immutable and thread-safe.</p>
*
@@ -91,16 +88,17 @@ public class Md5Crypt {
}
/**
- * Generates an Apache htpasswd compatible "$apr1$" MD5 based hash value. *
- *
- * The algorithm is identical to the crypt(3) "$1$" one but produces different outputs due to the different salt
- * prefix.
+ * Generates an Apache htpasswd compatible "$apr1$" MD5 based hash value.
+ * <p>
+ * The algorithm is identical to the crypt(3) "$1$" one but produces different
+ * outputs due to the different salt prefix.
*
* @param keyBytes
- * The plaintext string that should be hashed.
+ * plaintext string that should be hashed.
* @param salt
- * Salt string including the prefix and optionally garbage at the end. Will be generated randomly if
- * null.
+ * salt string including the prefix and optionally garbage at the end.
+ * Will be generated randomly if null.
+ * @return computed hash value
*/
public static String apr1Crypt(String keyBytes, String salt) throws Exception {
return apr1Crypt(keyBytes.getBytes(Charsets.UTF_8), salt);
@@ -108,7 +106,7 @@ public class Md5Crypt {
/**
* Generates a libc6 crypt() compatible "$1$" hash value.
- *
+ * <p>
* See {@link Crypt#crypt(String, String)} for details.
*/
public static String md5Crypt(final byte[] keyBytes) throws Exception {
@@ -117,14 +115,15 @@ public class Md5Crypt {
/**
* Generates a libc crypt() compatible "$1$" MD5 based hash value.
- *
+ * <p>
* See {@link Crypt#crypt(String, String)} for details.
*
* @param keyBytes
- * The plaintext string that should be hashed.
+ * plaintext string that should be hashed.
* @param salt
- * Salt string including the prefix and optionally garbage at the end. Will be generated randomly if
- * null.
+ * salt string including the prefix and optionally garbage at the end.
+ * Will be generated randomly if null.
+ * @return computed hash value
*/
public static String md5Crypt(byte[] keyBytes, String salt) throws Exception {
return md5Crypt(keyBytes, salt, MD5_PREFIX);
@@ -132,7 +131,7 @@ public class Md5Crypt {
/**
* Generates a libc6 crypt() "$1$" or Apache htpasswd "$apr1$" hash value.
- *
+ * <p>
* See {@link Crypt#crypt(String, String)} or {@link #apr1Crypt(String, String)} for details.
*/
public static String md5Crypt(final byte[] keyBytes, final String salt, final String prefix) throws Exception {
Modified: commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/digest/Sha2Crypt.java
URL: http://svn.apache.org/viewvc/commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/digest/Sha2Crypt.java?rev=1374394&r1=1374393&r2=1374394&view=diff
==============================================================================
--- commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/digest/Sha2Crypt.java (original)
+++ commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/digest/Sha2Crypt.java Fri Aug 17 18:44:06 2012
@@ -84,7 +84,7 @@ public class Sha2Crypt {
/**
* Generates a libc crypt() compatible "$5$" hash value with random salt.
- *
+ * <p>
* See {@link Crypt#crypt(String, String)} for details.
*/
public static String sha256Crypt(byte[] keyBytes) throws Exception {
@@ -93,7 +93,7 @@ public class Sha2Crypt {
/**
* Generates a libc6 crypt() compatible "$5$" hash value.
- *
+ * <p>
* See {@link Crypt#crypt(String, String)} for details.
*/
public static String sha256Crypt(byte[] keyBytes, String salt) throws Exception {
@@ -105,23 +105,24 @@ public class Sha2Crypt {
/**
* Generates a libc6 crypt() compatible "$5$" or "$6$" SHA2 based hash value.
- *
- * This is a nearly line by line conversion of the original C function. The numbered comments are from the algorithm
- * description, the short C-style ones from the original C code and the ones with "Remark" from me.
- *
+ * <p>
+ * This is a nearly line by line conversion of the original C function. The numbered comments
+ * are from the algorithm description, the short C-style ones from the original C code and the
+ * ones with "Remark" from me.
+ * <p>
* See {@link Crypt#crypt(String, String)} for details.
*
* @param keyBytes
- * The plaintext that should be hashed.
+ * plaintext that should be hashed
* @param salt_string
- * The real salt value without prefix or "rounds=".
+ * real salt value without prefix or "rounds="
* @param saltPrefix
- * Either $5$ or $6$.
+ * either $5$ or $6$
* @param blocksize
- * A value that differs between $5$ and $6$.
+ * a value that differs between $5$ and $6$
* @param algorithm
- * The MessageDigest algorithm identifier string.
- * @return The complete hash value including prefix and salt.
+ * {@link MessageDigest} algorithm identifier string
+ * @return complete hash value including prefix and salt
*/
private static String sha2Crypt(byte[] keyBytes, String salt, String saltPrefix, int blocksize, String algorithm)
throws Exception {
@@ -494,7 +495,7 @@ public class Sha2Crypt {
/**
* Generates a libc crypt() compatible "$6$" hash value with random salt.
- *
+ * <p>
* See {@link Crypt#crypt(String, String)} for details.
*/
public static String sha512Crypt(byte[] keyBytes) throws Exception {
@@ -503,7 +504,7 @@ public class Sha2Crypt {
/**
* Generates a libc6 crypt() compatible "$6$" hash value.
- *
+ * <p>
* See {@link Crypt#crypt(String, String)} for details.
*/
public static String sha512Crypt(byte[] keyBytes, String salt) throws Exception {
Modified: commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/digest/UnixCrypt.java
URL: http://svn.apache.org/viewvc/commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/digest/UnixCrypt.java?rev=1374394&r1=1374393&r2=1374394&view=diff
==============================================================================
--- commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/digest/UnixCrypt.java (original)
+++ commons/proper/codec/trunk/src/main/java/org/apache/commons/codec/digest/UnixCrypt.java Fri Aug 17 18:44:06 2012
@@ -23,15 +23,15 @@ import org.apache.commons.codec.Charsets
/**
* Unix crypt(3) algorithm implementation.
*
- * This class only implements the traditional 56 bit DES based algorithm. Please
+ * <p>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().
+ * algorithms supported in the current glibc's crypt().</p>
*
- * The Java implementation was taken from the JetSpeed Portal project (see
- * org.apache.jetspeed.services.security.ldap.UnixCrypt).
+ * <p>The Java implementation was taken from the JetSpeed Portal project (see
+ * org.apache.jetspeed.services.security.ldap.UnixCrypt).</p>
*
- * This class is slightly incompatible if the given salt contains characters
- * that are not part of the allowed range [a-zA-Z0-9./].
+ * <p>This class is slightly incompatible if the given salt contains characters
+ * that are not part of the allowed range [a-zA-Z0-9./].</p>
*
* <p>This class is immutable and thread-safe.</p>
*
@@ -342,12 +342,12 @@ public class UnixCrypt {
/**
* Generates a crypt(3) compatible hash using the DES algorithm.
- *
+ * <p>
* As no salt is given, a random one will be used.
*
- * @param original Plaintext password
- *
- * @return A 13 character string starting with the salt string.
+ * @param original
+ * plaintext password
+ * @return a 13 character string starting with the salt string
*/
public static String crypt(byte[] original) {
return crypt(original, null);
@@ -355,15 +355,14 @@ public class UnixCrypt {
/**
* Generates a crypt(3) compatible hash using the DES algorithm.
- *
+ * <p>
* Using unspecified characters as salt results incompatible hash values.
*
- * @param original Plaintext password
- *
- * @param salt A two character string drawn from [a-zA-Z0-9./] or null for a
- * random one.
- *
- * @return A 13 character string starting with the salt string.
+ * @param original
+ * plaintext password
+ * @param salt
+ * a two character string drawn from [a-zA-Z0-9./] or null for a random one
+ * @return a 13 character string starting with the salt string
*/
public static String crypt(byte[] original, String salt) {
if (salt == null) {
@@ -424,12 +423,12 @@ public class UnixCrypt {
/**
* Generates a crypt(3) compatible hash using the DES algorithm.
- *
+ * <p>
* As no salt is given, a random one is used.
*
- * @param original Plaintext password
- *
- * @return A 13 character string starting with the salt string.
+ * @param original
+ * plaintext password
+ * @return a 13 character string starting with the salt string
*/
public static String crypt(String original) throws Exception {
return crypt(original.getBytes(Charsets.UTF_8));
@@ -438,10 +437,11 @@ public class UnixCrypt {
/**
* Generates a crypt(3) compatible hash using the DES algorithm.
*
- * @param original Plaintext password
- * @param salt A two character string drawn from [a-zA-Z0-9./] or null for a
- * random one.
- * @return A 13 character string starting with the salt string.
+ * @param original
+ * plaintext password
+ * @param salt
+ * a two character string drawn from [a-zA-Z0-9./] or null for a random one
+ * @return a 13 character string starting with the salt string
*/
public static String crypt(String original, String salt) throws Exception {
return crypt(original.getBytes(Charsets.UTF_8), salt);