org.apache.shiro.crypto.hash.format
Class Shiro1CryptFormat
java.lang.Object
org.apache.shiro.crypto.hash.format.Shiro1CryptFormat
- All Implemented Interfaces:
- HashFormat, ModularCryptFormat, ParsableHashFormat
public class Shiro1CryptFormat
- extends Object
- implements ModularCryptFormat, ParsableHashFormat
The Shiro1CryptFormat is a fully reversible
Modular Crypt Format (MCF). Because it is
fully reversible (i.e. Hash -> String, String -> Hash), it does NOT use the traditional MCF encoding alphabet
(the traditional MCF encoding, aka H64, is bit-destructive and cannot be reversed). Instead, it uses fully
reversible Base64 encoding for the Hash digest and any salt value.
Format
Hash instances formatted with this implementation will result in a String with the following dollar-sign ($)
delimited format:
$mcfFormatId$algorithmName$iterationCount$base64EncodedSalt$base64EncodedDigest
Each token is defined as follows:
| Position |
Token |
Description |
Required? |
| 1 |
mcfFormatId |
The Modular Crypt Format identifier for this implementation, equal to shiro1.
( This implies that all shiro1 MCF-formatted strings will always begin with the prefix
$shiro1$ ). |
true |
| 2 |
algorithmName |
The name of the hash algorithm used to perform the hash. This is an algorithm name understood by
MessageDigest.getInstance, for example
MD5, SHA-256, SHA-256, etc. |
true |
| 3 |
iterationCount |
The number of hash iterations performed. |
true (1 <= N <= Integer.MAX_VALUE) |
| 4 |
base64EncodedSalt |
The Base64-encoded salt byte array. This token only exists if a salt was used to perform the hash. |
false |
| 5 |
base64EncodedDigest |
The Base64-encoded digest byte array. This is the actual hash result. |
true |
- Since:
- 1.2
- See Also:
ModularCryptFormat,
ParsableHashFormat
|
Method Summary |
String |
format(Hash hash)
Returns a formatted string representing the specified Hash instance. |
String |
getId()
Returns the Modular Crypt Format identifier that indicates how the formatted String should be parsed. |
Hash |
parse(String formatted)
Parses the specified formatted string and returns the corresponding Hash instance. |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
ID
public static final String ID
- See Also:
- Constant Field Values
MCF_PREFIX
public static final String MCF_PREFIX
- See Also:
- Constant Field Values
Shiro1CryptFormat
public Shiro1CryptFormat()
getId
public String getId()
- Description copied from interface:
ModularCryptFormat
- Returns the Modular Crypt Format identifier that indicates how the formatted String should be parsed. This id
is always in the MCF-formatted string's first token.
Example values are
md5, 1, 2, apr1, etc.
- Specified by:
getId in interface ModularCryptFormat
- Returns:
- the Modular Crypt Format identifier that indicates how the formatted String should be parsed.
format
public String format(Hash hash)
- Description copied from interface:
HashFormat
- Returns a formatted string representing the specified Hash instance.
- Specified by:
format in interface HashFormat
- Parameters:
hash - the hash instance to format into a String.
- Returns:
- a formatted string representing the specified Hash instance.
parse
public Hash parse(String formatted)
- Description copied from interface:
ParsableHashFormat
- Parses the specified formatted string and returns the corresponding Hash instance.
- Specified by:
parse in interface ParsableHashFormat
- Parameters:
formatted - the formatted string representing a Hash.
- Returns:
- the corresponding Hash instance.
Copyright © 2004-2013 The Apache Software Foundation. All Rights Reserved.