Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.apache.commons.codec.digest
Class Md5Crypt

    java.lang.Object
      org.apache.commons.codec.digest.Md5Crypt

    public class Md5Crypt

extends Object

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.

Since:
  1.7
Version:
  $Id: Md5Crypt.java 1379810 2012-09-01 16:57:53Z ggregory $

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`

Constructor Detail

### Md5Crypt

    public Md5Crypt()

Method Detail

### apr1Crypt

    public static String apr1Crypt(byte[] keyBytes)

  See `apr1Crypt(String, String)` for details.

  Throws:
    `RuntimeException` - when a `NoSuchAlgorithmException` is caught. *

### apr1Crypt

    public static String apr1Crypt(byte[] keyBytes,
                                   String salt)

  See `apr1Crypt(String, String)` for details.

  Throws:
    `IllegalArgumentException` - if the salt does not match the allowed pattern
    `RuntimeException` - when a `NoSuchAlgorithmException` is caught.

### apr1Crypt

    public static String apr1Crypt(String keyBytes)

  See `apr1Crypt(String, String)` for details.

  Throws:
    `RuntimeException` - when a `NoSuchAlgorithmException` is caught.

### apr1Crypt

    public static String apr1Crypt(String keyBytes,
                                   String salt)

  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.

  Parameters:
    `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.
  Returns:
    computed hash value
  Throws:
    `IllegalArgumentException` - if the salt does not match the allowed pattern
    `RuntimeException` - when a `NoSuchAlgorithmException` is caught.

### md5Crypt

    public static String md5Crypt(byte[] keyBytes)

  Generates a libc6 crypt() compatible "$1$" hash value.

  See `Crypt.crypt(String, String)` for details.

  Throws:
    `RuntimeException` - when a `NoSuchAlgorithmException` is caught.

### md5Crypt

    public static String md5Crypt(byte[] keyBytes,
                                  String salt)

  Generates a libc crypt() compatible "$1$" MD5 based hash value.

  See `Crypt.crypt(String, String)` for details.

  Parameters:
    `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.
  Returns:
    computed hash value
  Throws:
    `IllegalArgumentException` - if the salt does not match the allowed pattern
    `RuntimeException` - when a `NoSuchAlgorithmException` is caught.

### md5Crypt

    public static String md5Crypt(byte[] keyBytes,
                                  String salt,
                                  String prefix)

  Generates a libc6 crypt() "$1$" or Apache htpasswd "$apr1$" hash value.

  See `Crypt.crypt(String, String)` or `apr1Crypt(String, String)` for details.

  Throws:
    `IllegalArgumentException` - if the salt does not match the allowed pattern
    `RuntimeException` - when a `NoSuchAlgorithmException` is caught.

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

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