Package org.apache.commons.codec.digest
Class Sha2Crypt
- java.lang.Object
 - 
- org.apache.commons.codec.digest.Sha2Crypt
 
 
- 
public class Sha2Crypt extends java.lang.ObjectSHA2-based UNIX crypt implementation.Based on the C implementation released into the Public Domain by Ulrich Drepper <drepper@redhat.com> http://www.akkadia.org/drepper/SHA-crypt.txt
Conversion to Kotlin and from there to Java in 2012 by Christian Hammers <ch@lathspell.de> and likewise put into the Public Domain.
This class is immutable and thread-safe.
- Since:
 - 1.7
 
 
- 
- 
Constructor Summary
Constructors Constructor Description Sha2Crypt() 
- 
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static java.lang.Stringsha256Crypt(byte[] keyBytes)Generates a libc crypt() compatible "$5$" hash value with random salt.static java.lang.Stringsha256Crypt(byte[] keyBytes, java.lang.String salt)Generates a libc6 crypt() compatible "$5$" hash value.static java.lang.Stringsha256Crypt(byte[] keyBytes, java.lang.String salt, java.util.Random random)Generates a libc6 crypt() compatible "$5$" hash value.static java.lang.Stringsha512Crypt(byte[] keyBytes)Generates a libc crypt() compatible "$6$" hash value with random salt.static java.lang.Stringsha512Crypt(byte[] keyBytes, java.lang.String salt)Generates a libc6 crypt() compatible "$6$" hash value.static java.lang.Stringsha512Crypt(byte[] keyBytes, java.lang.String salt, java.util.Random random)Generates a libc6 crypt() compatible "$6$" hash value. 
 - 
 
- 
- 
Method Detail
- 
sha256Crypt
public static java.lang.String sha256Crypt(byte[] keyBytes)
Generates a libc crypt() compatible "$5$" hash value with random salt.See
Crypt.crypt(String, String)for details.A salt is generated for you using
SecureRandom.- Parameters:
 keyBytes- plaintext to hash. Each array element is set to0before returning.- Returns:
 - complete hash value
 - Throws:
 java.lang.IllegalArgumentException- when aNoSuchAlgorithmExceptionis caught.
 
- 
sha256Crypt
public static java.lang.String sha256Crypt(byte[] keyBytes, java.lang.String salt)Generates a libc6 crypt() compatible "$5$" hash value.See
Crypt.crypt(String, String)for details.- Parameters:
 keyBytes- plaintext to hash. Each array element is set to0before returning.salt- real salt value without prefix or "rounds=". The salt may be null, in which case a salt is generated for you usingSecureRandom. If one does not want to useSecureRandom, you can pass your ownRandominsha256Crypt(byte[], String, Random).- Returns:
 - complete hash value including salt
 - Throws:
 java.lang.IllegalArgumentException- if the salt does not match the allowed patternjava.lang.IllegalArgumentException- when aNoSuchAlgorithmExceptionis caught.
 
- 
sha256Crypt
public static java.lang.String sha256Crypt(byte[] keyBytes, java.lang.String salt, java.util.Random random)Generates a libc6 crypt() compatible "$5$" hash value.See
Crypt.crypt(String, String)for details.- Parameters:
 keyBytes- plaintext to hash. Each array element is set to0before returning.salt- real salt value without prefix or "rounds=".random- the instance ofRandomto use for generating the salt. Consider usingSecureRandomfor more secure salts.- Returns:
 - complete hash value including salt
 - Throws:
 java.lang.IllegalArgumentException- if the salt does not match the allowed patternjava.lang.IllegalArgumentException- when aNoSuchAlgorithmExceptionis caught.- Since:
 - 1.12
 
 
- 
sha512Crypt
public static java.lang.String sha512Crypt(byte[] keyBytes)
Generates a libc crypt() compatible "$6$" hash value with random salt.See
Crypt.crypt(String, String)for details.A salt is generated for you using
SecureRandom- Parameters:
 keyBytes- plaintext to hash. Each array element is set to0before returning.- Returns:
 - complete hash value
 - Throws:
 java.lang.IllegalArgumentException- when aNoSuchAlgorithmExceptionis caught.
 
- 
sha512Crypt
public static java.lang.String sha512Crypt(byte[] keyBytes, java.lang.String salt)Generates a libc6 crypt() compatible "$6$" hash value.See
Crypt.crypt(String, String)for details.- Parameters:
 keyBytes- plaintext to hash. Each array element is set to0before returning.salt- real salt value without prefix or "rounds=". The salt may be null, in which case a salt is generated for you usingSecureRandom; if you want to use aRandomobject other thanSecureRandomthen we suggest you provide it usingsha512Crypt(byte[], String, Random).- Returns:
 - complete hash value including salt
 - Throws:
 java.lang.IllegalArgumentException- if the salt does not match the allowed patternjava.lang.IllegalArgumentException- when aNoSuchAlgorithmExceptionis caught.
 
- 
sha512Crypt
public static java.lang.String sha512Crypt(byte[] keyBytes, java.lang.String salt, java.util.Random random)Generates a libc6 crypt() compatible "$6$" hash value.See
Crypt.crypt(String, String)for details.- Parameters:
 keyBytes- plaintext to hash. Each array element is set to0before returning.salt- real salt value without prefix or "rounds=". The salt may be null, in which case a salt is generated for you usingSecureRandom.random- the instance ofRandomto use for generating the salt. Consider usingSecureRandomfor more secure salts.- Returns:
 - complete hash value including salt
 - Throws:
 java.lang.IllegalArgumentException- if the salt does not match the allowed patternjava.lang.IllegalArgumentException- when aNoSuchAlgorithmExceptionis caught.- Since:
 - 1.12
 
 
 - 
 
 -