http://git-wip-us.apache.org/repos/asf/shiro-site/blob/5896aacc/static/1.2.1/apidocs/org/apache/shiro/authc/credential/HashedCredentialsMatcher.html
----------------------------------------------------------------------
diff --git 
a/static/1.2.1/apidocs/org/apache/shiro/authc/credential/HashedCredentialsMatcher.html
 
b/static/1.2.1/apidocs/org/apache/shiro/authc/credential/HashedCredentialsMatcher.html
deleted file mode 100644
index 977bff8..0000000
--- 
a/static/1.2.1/apidocs/org/apache/shiro/authc/credential/HashedCredentialsMatcher.html
+++ /dev/null
@@ -1,827 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
-<!-- NewPage -->
-<html lang="en">
-<head>
-<!-- Generated by javadoc (version 1.7.0_21) on Thu May 30 14:51:23 PDT 2013 
-->
-<meta http-equiv="Content-Type" content="text/html" charset="UTF-8">
-<title>HashedCredentialsMatcher (Apache Shiro 1.2.1 API)</title>
-<meta name="date" content="2013-05-30">
-<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" 
title="Style">
-</head>
-<body>
-<script type="text/javascript"><!--
-    if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="HashedCredentialsMatcher (Apache Shiro 1.2.1 
API)";
-    }
-//-->
-</script>
-<noscript>
-<div>JavaScript is disabled on your browser.</div>
-</noscript>
-<!-- Begin Google Analytics code -->   <script type="text/javascript">       
var _gaq = _gaq || [];       _gaq.push(['_setAccount', 'UA-11551827-1']);       
_gaq.push(['_trackPageview']);        (function() {         var ga = 
document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; 
        ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 
'http://www') + '.google-analytics.com/ga.js';         var s = 
document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);   
    })();   </script>   <!-- End Google Analytics code -->
-<!-- ========= START OF TOP NAVBAR ======= -->
-<div class="topNav"><a name="navbar_top">
-<!--   -->
-</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a 
name="navbar_top_firstrow">
-<!--   -->
-</a>
-<ul class="navList" title="Navigation">
-<li><a href="../../../../../overview-summary.html">Overview</a></li>
-<li><a href="package-summary.html">Package</a></li>
-<li class="navBarCell1Rev">Class</li>
-<li><a href="class-use/HashedCredentialsMatcher.html">Use</a></li>
-<li><a href="package-tree.html">Tree</a></li>
-<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
-<li><a href="../../../../../index-all.html">Index</a></li>
-<li><a href="../../../../../help-doc.html">Help</a></li>
-</ul>
-</div>
-<div class="subNav">
-<ul class="navList">
-<li><a 
href="../../../../../org/apache/shiro/authc/credential/DefaultPasswordService.html"
 title="class in org.apache.shiro.authc.credential"><span class="strong">Prev 
Class</span></a></li>
-<li><a 
href="../../../../../org/apache/shiro/authc/credential/HashingPasswordService.html"
 title="interface in org.apache.shiro.authc.credential"><span 
class="strong">Next Class</span></a></li>
-</ul>
-<ul class="navList">
-<li><a 
href="../../../../../index.html?org/apache/shiro/authc/credential/HashedCredentialsMatcher.html"
 target="_top">Frames</a></li>
-<li><a href="HashedCredentialsMatcher.html" target="_top">No Frames</a></li>
-</ul>
-<ul class="navList" id="allclasses_navbar_top">
-<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
-</ul>
-<div>
-<script type="text/javascript"><!--
-  allClassesLink = document.getElementById("allclasses_navbar_top");
-  if(window==top) {
-    allClassesLink.style.display = "block";
-  }
-  else {
-    allClassesLink.style.display = "none";
-  }
-  //-->
-</script>
-</div>
-<div>
-<ul class="subNavList">
-<li>Summary:&nbsp;</li>
-<li>Nested&nbsp;|&nbsp;</li>
-<li><a 
href="#fields_inherited_from_class_org.apache.shiro.codec.CodecSupport">Field</a>&nbsp;|&nbsp;</li>
-<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
-<li><a href="#method_summary">Method</a></li>
-</ul>
-<ul class="subNavList">
-<li>Detail:&nbsp;</li>
-<li>Field&nbsp;|&nbsp;</li>
-<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
-<li><a href="#method_detail">Method</a></li>
-</ul>
-</div>
-<a name="skip-navbar_top">
-<!--   -->
-</a></div>
-<!-- ========= END OF TOP NAVBAR ========= -->
-<!-- ======== START OF CLASS DATA ======== -->
-<div class="header">
-<div class="subTitle">org.apache.shiro.authc.credential</div>
-<h2 title="Class HashedCredentialsMatcher" class="title">Class 
HashedCredentialsMatcher</h2>
-</div>
-<div class="contentContainer">
-<ul class="inheritance">
-<li><a 
href="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true";
 title="class or interface in java.lang">java.lang.Object</a></li>
-<li>
-<ul class="inheritance">
-<li><a href="../../../../../org/apache/shiro/codec/CodecSupport.html" 
title="class in 
org.apache.shiro.codec">org.apache.shiro.codec.CodecSupport</a></li>
-<li>
-<ul class="inheritance">
-<li><a 
href="../../../../../org/apache/shiro/authc/credential/SimpleCredentialsMatcher.html"
 title="class in 
org.apache.shiro.authc.credential">org.apache.shiro.authc.credential.SimpleCredentialsMatcher</a></li>
-<li>
-<ul class="inheritance">
-<li>org.apache.shiro.authc.credential.HashedCredentialsMatcher</li>
-</ul>
-</li>
-</ul>
-</li>
-</ul>
-</li>
-</ul>
-<div class="description">
-<ul class="blockList">
-<li class="blockList">
-<dl>
-<dt>All Implemented Interfaces:</dt>
-<dd><a 
href="../../../../../org/apache/shiro/authc/credential/CredentialsMatcher.html" 
title="interface in 
org.apache.shiro.authc.credential">CredentialsMatcher</a></dd>
-</dl>
-<dl>
-<dt>Direct Known Subclasses:</dt>
-<dd><a 
href="../../../../../org/apache/shiro/authc/credential/Md2CredentialsMatcher.html"
 title="class in org.apache.shiro.authc.credential">Md2CredentialsMatcher</a>, 
<a 
href="../../../../../org/apache/shiro/authc/credential/Md5CredentialsMatcher.html"
 title="class in org.apache.shiro.authc.credential">Md5CredentialsMatcher</a>, 
<a 
href="../../../../../org/apache/shiro/authc/credential/Sha1CredentialsMatcher.html"
 title="class in org.apache.shiro.authc.credential">Sha1CredentialsMatcher</a>, 
<a 
href="../../../../../org/apache/shiro/authc/credential/Sha256CredentialsMatcher.html"
 title="class in 
org.apache.shiro.authc.credential">Sha256CredentialsMatcher</a>, <a 
href="../../../../../org/apache/shiro/authc/credential/Sha384CredentialsMatcher.html"
 title="class in 
org.apache.shiro.authc.credential">Sha384CredentialsMatcher</a>, <a 
href="../../../../../org/apache/shiro/authc/credential/Sha512CredentialsMatcher.html"
 title="class in org.apache.shiro.authc.credential">Sha512CredentialsMa
 tcher</a></dd>
-</dl>
-<hr>
-<br>
-<pre>public class <a 
href="../../../../../src-html/org/apache/shiro/authc/credential/HashedCredentialsMatcher.html#line.120">HashedCredentialsMatcher</a>
-extends <a 
href="../../../../../org/apache/shiro/authc/credential/SimpleCredentialsMatcher.html"
 title="class in 
org.apache.shiro.authc.credential">SimpleCredentialsMatcher</a></pre>
-<div class="block">A <code>HashedCredentialMatcher</code> provides support for 
hashing of supplied <code>AuthenticationToken</code> credentials
- before being compared to those in the <code>AuthenticationInfo</code> from 
the data store.
- <p/>
- Credential hashing is one of the most common security techniques when 
safeguarding a user's private credentials
- (passwords, keys, etc).  Most developers never want to store their users' 
credentials in plain form, viewable by
- anyone, so they often hash the users' credentials before they are saved in 
the data store.
- <p/>
- This class (and its subclasses) function as follows:
- <ol>
- <li>Hash the <code>AuthenticationToken</code> credentials supplied by the 
user during their login.</li>
- <li>Compare this hashed value directly with the 
<code>AuthenticationInfo</code> credentials stored in the system
- (the stored account credentials are expected to already be in hashed 
form).</li>
- <li>If these two values are <a 
href="../../../../../org/apache/shiro/authc/credential/SimpleCredentialsMatcher.html#equals(java.lang.Object,
 java.lang.Object)"><code>equal</code></a>, the submitted credentials match, 
otherwise
- they do not.</li>
- </ol>
- <h2>Salting and Multiple Hash Iterations</h2>
- Because simple hashing is usually not good enough for secure applications, 
this class also supports 'salting'
- and multiple hash iterations.  Please read this excellent
- <a href="http://www.owasp.org/index.php/Hashing_Java"; _target="blank">Hashing 
Java article</a> to learn about
- salting and multiple iterations and why you might want to use them. (Note of 
sections 5
- &quot;Why add salt?&quot; and 6 "Hardening against the attacker's attack").   
We should also note here that all of
- Shiro's Hash implementations (for example, <a 
href="../../../../../org/apache/shiro/crypto/hash/Md5Hash.html" title="class in 
org.apache.shiro.crypto.hash"><code>Md5Hash</code></a>,
- <a href="../../../../../org/apache/shiro/crypto/hash/Sha1Hash.html" 
title="class in org.apache.shiro.crypto.hash"><code>Sha1Hash</code></a>, etc) 
support salting and multiple hash iterations via
- overloaded constructors.
- <h4>Real World Case Study</h4>
- In April 2010, some public Atlassian Jira and Confluence
- installations (Apache Software Foundation, Codehaus, etc) were the target of 
account attacks and user accounts
- were compromised.  The reason?  Jira and Confluence at the time did not salt 
user passwords and attackers were
- able to use dictionary attacks to compromise user accounts (Atlassian has 
since
- <a 
href="http://blogs.atlassian.com/news/2010/04/oh_man_what_a_day_an_update_on_our_security_breach.html";>
- fixed the problem</a> of course).
- <p/>
- The lesson?
- <p/>
- <b>ALWAYS, ALWAYS, ALWAYS SALT USER PASSWORDS!</b>
- <p/>
- <h3>Salting</h3>
- Prior to Shiro 1.1, salts could be obtained based on the end-user submitted
- <a href="../../../../../org/apache/shiro/authc/AuthenticationToken.html" 
title="interface in 
org.apache.shiro.authc"><code>AuthenticationToken</code></a> via the 
now-deprecated
- <a 
href="../../../../../org/apache/shiro/authc/credential/HashedCredentialsMatcher.html#getSalt(org.apache.shiro.authc.AuthenticationToken)"><code>getSalt(AuthenticationToken)</code></a>
 method.  This however
- could constitute a security hole since ideally salts should never be obtained 
based on what a user can submit.
- User-submitted salt mechanisms are <em>much</em> more susceptible to 
dictionary attacks and <b>SHOULD NOT</b> be
- used in secure systems.  Instead salts should ideally be a secure 
randomly-generated number that is generated when
- the user account is created.  The secure number should never be disseminated 
to the user and always kept private
- by the application.
- <h4>Shiro 1.1</h4>
- As of Shiro 1.1, it is expected that any salt used to hash the submitted 
credentials will be obtained from the
- stored account information (represented as an <a 
href="../../../../../org/apache/shiro/authc/AuthenticationInfo.html" 
title="interface in org.apache.shiro.authc"><code>AuthenticationInfo</code></a> 
instance).  This is much
- more secure because the salt value remains private to the application (Shiro 
will never store this value).
- <p/>
- To enable this, <code>Realm</code>s should return <a 
href="../../../../../org/apache/shiro/authc/SaltedAuthenticationInfo.html" 
title="interface in 
org.apache.shiro.authc"><code>SaltedAuthenticationInfo</code></a> instances
- during authentication.  <code>HashedCredentialsMatcher</code> implementations 
will then use the provided
- <a 
href="../../../../../org/apache/shiro/authc/SaltedAuthenticationInfo.html#getCredentialsSalt()"><code>credentialsSalt</code></a>
 for hashing.  To avoid
- security risks,
- <b>it is highly recommended that any existing <code>Realm</code> 
implementations that support hashed credentials are
- updated to return <a 
href="../../../../../org/apache/shiro/authc/SaltedAuthenticationInfo.html" 
title="interface in 
org.apache.shiro.authc"><code>SaltedAuthenticationInfo</code></a> instances as 
soon as possible</b>.
- <h4>Shiro 1.0 Backwards Compatibility</h4>
- Because of the identified security risk, <code>Realm</code> implementations 
that support credentials hashing should
- be updated to return <a 
href="../../../../../org/apache/shiro/authc/SaltedAuthenticationInfo.html" 
title="interface in 
org.apache.shiro.authc"><code>SaltedAuthenticationInfo</code></a> instances as
- soon as possible.
- <p/>
- If this is not possible for some reason, this class will retain 1.0 
backwards-compatible behavior of obtaining
- the salt via the now-deprecated <a 
href="../../../../../org/apache/shiro/authc/credential/HashedCredentialsMatcher.html#getSalt(org.apache.shiro.authc.AuthenticationToken)"><code>getSalt(AuthenticationToken)</code></a>
 method.  This
- method will only be invoked if a <code>Realm</code> <em>does not</em> return
- <a href="../../../../../org/apache/shiro/authc/SaltedAuthenticationInfo.html" 
title="interface in 
org.apache.shiro.authc"><code>SaltedAutenticationInfo</code></a> instances and 
<a 
href="../../../../../org/apache/shiro/authc/credential/HashedCredentialsMatcher.html#isHashSalted()"><code>hashSalted</code></a>
 is
- <code>true</code>.
- But please note that the <a 
href="../../../../../org/apache/shiro/authc/credential/HashedCredentialsMatcher.html#isHashSalted()"><code>hashSalted</code></a>
 property and the
- <a 
href="../../../../../org/apache/shiro/authc/credential/HashedCredentialsMatcher.html#getSalt(org.apache.shiro.authc.AuthenticationToken)"><code>getSalt(AuthenticationToken)</code></a>
 methods will be removed before the Shiro 2.0
- release.
- <h3>Multiple Hash Iterations</h3>
- If you hash your users' credentials multiple times before persisting to the 
data store, you will also need to
- set this class's <a 
href="../../../../../org/apache/shiro/authc/credential/HashedCredentialsMatcher.html#setHashIterations(int)"><code>hashIterations</code></a>
 property.  See the
- <a href="http://www.owasp.org/index.php/Hashing_Java"; _target="blank">Hashing 
Java article</a>'s
- <a 
href="http://www.owasp.org/index.php/Hashing_Java#Hardening_against_the_attacker.27s_attack";>
- &quot;Hardening against the attacker's attack&quot;</a> section to learn more 
about why you might want to use
- multiple hash iterations.
- <h2>MD5 &amp; SHA-1 Notice</h2>
- <a href="http://en.wikipedia.org/wiki/MD5";>MD5</a> and
- <a href="http://en.wikipedia.org/wiki/SHA_hash_functions";>SHA-1</a> 
algorithms are now known to be vulnerable to
- compromise and/or collisions (read the linked pages for more).  While most 
applications are ok with either of these
- two, if your application mandates high security, use the SHA-256 (or higher) 
hashing algorithms and their
- supporting <code>CredentialsMatcher</code> implementations.</div>
-<dl><dt><span class="strong">Since:</span></dt>
-  <dd>0.9</dd>
-<dt><span class="strong">See Also:</span></dt><dd><a 
href="../../../../../org/apache/shiro/crypto/hash/Md5Hash.html" title="class in 
org.apache.shiro.crypto.hash"><code>Md5Hash</code></a>, 
-<a href="../../../../../org/apache/shiro/crypto/hash/Sha1Hash.html" 
title="class in org.apache.shiro.crypto.hash"><code>Sha1Hash</code></a>, 
-<a href="../../../../../org/apache/shiro/crypto/hash/Sha256Hash.html" 
title="class in 
org.apache.shiro.crypto.hash"><code>Sha256Hash</code></a></dd></dl>
-</li>
-</ul>
-</div>
-<div class="summary">
-<ul class="blockList">
-<li class="blockList">
-<!-- =========== FIELD SUMMARY =========== -->
-<ul class="blockList">
-<li class="blockList"><a name="field_summary">
-<!--   -->
-</a>
-<h3>Field Summary</h3>
-<ul class="blockList">
-<li class="blockList"><a 
name="fields_inherited_from_class_org.apache.shiro.codec.CodecSupport">
-<!--   -->
-</a>
-<h3>Fields inherited from class&nbsp;org.apache.shiro.codec.<a 
href="../../../../../org/apache/shiro/codec/CodecSupport.html" title="class in 
org.apache.shiro.codec">CodecSupport</a></h3>
-<code><a 
href="../../../../../org/apache/shiro/codec/CodecSupport.html#PREFERRED_ENCODING">PREFERRED_ENCODING</a></code></li>
-</ul>
-</li>
-</ul>
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-<ul class="blockList">
-<li class="blockList"><a name="constructor_summary">
-<!--   -->
-</a>
-<h3>Constructor Summary</h3>
-<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" 
summary="Constructor Summary table, listing constructors, and an explanation">
-<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
-<tr>
-<th class="colOne" scope="col">Constructor and Description</th>
-</tr>
-<tr class="altColor">
-<td class="colOne"><code><strong><a 
href="../../../../../org/apache/shiro/authc/credential/HashedCredentialsMatcher.html#HashedCredentialsMatcher()">HashedCredentialsMatcher</a></strong>()</code>
-<div class="block">JavaBeans-compatibile no-arg constructor intended for use 
in IoC/Dependency Injection environments.</div>
-</td>
-</tr>
-<tr class="rowColor">
-<td class="colOne"><code><strong><a 
href="../../../../../org/apache/shiro/authc/credential/HashedCredentialsMatcher.html#HashedCredentialsMatcher(java.lang.String)">HashedCredentialsMatcher</a></strong>(<a
 
href="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true";
 title="class or interface in 
java.lang">String</a>&nbsp;hashAlgorithmName)</code>
-<div class="block">Creates an instance using the specified <a 
href="../../../../../org/apache/shiro/authc/credential/HashedCredentialsMatcher.html#getHashAlgorithmName()"><code>hashAlgorithmName</code></a>
 to hash submitted
- credentials.</div>
-</td>
-</tr>
-</table>
-</li>
-</ul>
-<!-- ========== METHOD SUMMARY =========== -->
-<ul class="blockList">
-<li class="blockList"><a name="method_summary">
-<!--   -->
-</a>
-<h3>Method Summary</h3>
-<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" 
summary="Method Summary table, listing methods, and an explanation">
-<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
-<tr>
-<th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Method and Description</th>
-</tr>
-<tr class="altColor">
-<td class="colFirst"><code>boolean</code></td>
-<td class="colLast"><code><strong><a 
href="../../../../../org/apache/shiro/authc/credential/HashedCredentialsMatcher.html#doCredentialsMatch(org.apache.shiro.authc.AuthenticationToken,
 org.apache.shiro.authc.AuthenticationInfo)">doCredentialsMatch</a></strong>(<a 
href="../../../../../org/apache/shiro/authc/AuthenticationToken.html" 
title="interface in org.apache.shiro.authc">AuthenticationToken</a>&nbsp;token,
-                                    <a 
href="../../../../../org/apache/shiro/authc/AuthenticationInfo.html" 
title="interface in 
org.apache.shiro.authc">AuthenticationInfo</a>&nbsp;info)</code>
-<div class="block">This implementation first hashes the <code>token</code>'s 
credentials, potentially using a
- <code>salt</code> if the <code>info</code> argument is a
- <a href="../../../../../org/apache/shiro/authc/SaltedAuthenticationInfo.html" 
title="interface in 
org.apache.shiro.authc"><code>SaltedAuthenticationInfo</code></a>.</div>
-</td>
-</tr>
-<tr class="rowColor">
-<td class="colFirst"><code>protected <a 
href="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true";
 title="class or interface in java.lang">Object</a></code></td>
-<td class="colLast"><code><strong><a 
href="../../../../../org/apache/shiro/authc/credential/HashedCredentialsMatcher.html#getCredentials(org.apache.shiro.authc.AuthenticationInfo)">getCredentials</a></strong>(<a
 href="../../../../../org/apache/shiro/authc/AuthenticationInfo.html" 
title="interface in 
org.apache.shiro.authc">AuthenticationInfo</a>&nbsp;info)</code>
-<div class="block">Returns a <a 
href="../../../../../org/apache/shiro/crypto/hash/Hash.html" title="interface 
in org.apache.shiro.crypto.hash"><code>Hash</code></a> instance representing 
the already-hashed AuthenticationInfo credentials stored in the system.</div>
-</td>
-</tr>
-<tr class="altColor">
-<td class="colFirst"><code><a 
href="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true";
 title="class or interface in java.lang">String</a></code></td>
-<td class="colLast"><code><strong><a 
href="../../../../../org/apache/shiro/authc/credential/HashedCredentialsMatcher.html#getHashAlgorithmName()">getHashAlgorithmName</a></strong>()</code>
-<div class="block">Returns the <code>Hash</code> <a 
href="../../../../../org/apache/shiro/crypto/hash/Hash.html#getAlgorithmName()"><code>algorithmName</code></a>
 to use
- when performing hashes for credentials matching.</div>
-</td>
-</tr>
-<tr class="rowColor">
-<td class="colFirst"><code>int</code></td>
-<td class="colLast"><code><strong><a 
href="../../../../../org/apache/shiro/authc/credential/HashedCredentialsMatcher.html#getHashIterations()">getHashIterations</a></strong>()</code>
-<div class="block">Returns the number of times a submitted 
<code>AuthenticationToken</code>'s credentials will be hashed before
- comparing to the credentials stored in the system.</div>
-</td>
-</tr>
-<tr class="altColor">
-<td class="colFirst"><code>protected <a 
href="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true";
 title="class or interface in java.lang">Object</a></code></td>
-<td class="colLast"><code><strong><a 
href="../../../../../org/apache/shiro/authc/credential/HashedCredentialsMatcher.html#getSalt(org.apache.shiro.authc.AuthenticationToken)">getSalt</a></strong>(<a
 href="../../../../../org/apache/shiro/authc/AuthenticationToken.html" 
title="interface in 
org.apache.shiro.authc">AuthenticationToken</a>&nbsp;token)</code>
-<div class="block"><strong>Deprecated.</strong>&nbsp;
-<div class="block"><i>since Shiro 1.1.  Hash salting is now expected to be 
based on if the <a 
href="../../../../../org/apache/shiro/authc/AuthenticationInfo.html" 
title="interface in org.apache.shiro.authc"><code>AuthenticationInfo</code></a>
-             returned from the <code>Realm</code> is a <a 
href="../../../../../org/apache/shiro/authc/SaltedAuthenticationInfo.html" 
title="interface in 
org.apache.shiro.authc"><code>SaltedAuthenticationInfo</code></a> instance and 
its
-             <a 
href="../../../../../org/apache/shiro/authc/SaltedAuthenticationInfo.html#getCredentialsSalt()"><code>getCredentialsSalt()</code></a>
 method returns a non-null value.
-             This method and the 1.0 behavior still exists for backwards 
compatibility if the <code>Realm</code> does not return
-             <code>SaltedAuthenticationInfo</code> instances, but <b>it is 
highly recommended that <code>Realm</code> implementations
-             that support hashed credentials start returning <a 
href="../../../../../org/apache/shiro/authc/SaltedAuthenticationInfo.html" 
title="interface in 
org.apache.shiro.authc"><code>SaltedAuthenticationInfo</code></a>
-             instances as soon as possible</b>.<p/>
-             This is because salts should always be obtained from the stored 
account information and
-             never be interpreted based on user/Subject-entered data.  
User-entered data is easier to compromise for
-             attackers, whereas account-unique (and secure randomly-generated) 
salts never disseminated to the end-user
-             are almost impossible to break.  This method will be removed in 
Shiro 2.0.</i></div>
-</div>
-</td>
-</tr>
-<tr class="rowColor">
-<td class="colFirst"><code>protected <a 
href="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true";
 title="class or interface in java.lang">Object</a></code></td>
-<td class="colLast"><code><strong><a 
href="../../../../../org/apache/shiro/authc/credential/HashedCredentialsMatcher.html#hashProvidedCredentials(org.apache.shiro.authc.AuthenticationToken,
 
org.apache.shiro.authc.AuthenticationInfo)">hashProvidedCredentials</a></strong>(<a
 href="../../../../../org/apache/shiro/authc/AuthenticationToken.html" 
title="interface in org.apache.shiro.authc">AuthenticationToken</a>&nbsp;token,
-                                              <a 
href="../../../../../org/apache/shiro/authc/AuthenticationInfo.html" 
title="interface in 
org.apache.shiro.authc">AuthenticationInfo</a>&nbsp;info)</code>
-<div class="block">Hash the provided <code>token</code>'s credentials using 
the salt stored with the account if the
- <code>info</code> instance is an <code>instanceof</code> <a 
href="../../../../../org/apache/shiro/authc/SaltedAuthenticationInfo.html" 
title="interface in 
org.apache.shiro.authc"><code>SaltedAuthenticationInfo</code></a> (see
- the class-level JavaDoc for why this is the preferred approach).</div>
-</td>
-</tr>
-<tr class="altColor">
-<td class="colFirst"><code>protected <a 
href="../../../../../org/apache/shiro/crypto/hash/Hash.html" title="interface 
in org.apache.shiro.crypto.hash">Hash</a></code></td>
-<td class="colLast"><code><strong><a 
href="../../../../../org/apache/shiro/authc/credential/HashedCredentialsMatcher.html#hashProvidedCredentials(java.lang.Object,
 java.lang.Object, int)">hashProvidedCredentials</a></strong>(<a 
href="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true";
 title="class or interface in java.lang">Object</a>&nbsp;credentials,
-                                              <a 
href="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true";
 title="class or interface in java.lang">Object</a>&nbsp;salt,
-                                              int&nbsp;hashIterations)</code>
-<div class="block">Hashes the provided credentials a total of 
<code>hashIterations</code> times, using the given salt.</div>
-</td>
-</tr>
-<tr class="rowColor">
-<td class="colFirst"><code>boolean</code></td>
-<td class="colLast"><code><strong><a 
href="../../../../../org/apache/shiro/authc/credential/HashedCredentialsMatcher.html#isHashSalted()">isHashSalted</a></strong>()</code>
-<div class="block"><strong>Deprecated.</strong>&nbsp;
-<div class="block"><i>since Shiro 1.1.  Hash salting is now expected to be 
based on if the <a 
href="../../../../../org/apache/shiro/authc/AuthenticationInfo.html" 
title="interface in org.apache.shiro.authc"><code>AuthenticationInfo</code></a>
-             returned from the <code>Realm</code> is a <a 
href="../../../../../org/apache/shiro/authc/SaltedAuthenticationInfo.html" 
title="interface in 
org.apache.shiro.authc"><code>SaltedAuthenticationInfo</code></a> instance and 
its
-             <a 
href="../../../../../org/apache/shiro/authc/SaltedAuthenticationInfo.html#getCredentialsSalt()"><code>getCredentialsSalt()</code></a>
 method returns a non-null value.
-             This method and the 1.0 behavior still exists for backwards 
compatibility if the <code>Realm</code> does not return
-             <code>SaltedAuthenticationInfo</code> instances, but <b>it is 
highly recommended that <code>Realm</code> implementations
-             that support hashed credentials start returning <a 
href="../../../../../org/apache/shiro/authc/SaltedAuthenticationInfo.html" 
title="interface in 
org.apache.shiro.authc"><code>SaltedAuthenticationInfo</code></a>
-             instances as soon as possible</b>.
-             <p/>
-             This is because salts should always be obtained from the stored 
account information and
-             never be interpreted based on user/Subject-entered data.  
User-entered data is easier to compromise for
-             attackers, whereas account-unique (and secure randomly-generated) 
salts never disseminated to the end-user
-             are almost impossible to break.  This method will be removed in 
Shiro 2.0.</i></div>
-</div>
-</td>
-</tr>
-<tr class="altColor">
-<td class="colFirst"><code>boolean</code></td>
-<td class="colLast"><code><strong><a 
href="../../../../../org/apache/shiro/authc/credential/HashedCredentialsMatcher.html#isStoredCredentialsHexEncoded()">isStoredCredentialsHexEncoded</a></strong>()</code>
-<div class="block">Returns <code>true</code> if the system's stored credential 
hash is Hex encoded, <code>false</code> if it
- is Base64 encoded.</div>
-</td>
-</tr>
-<tr class="rowColor">
-<td class="colFirst"><code>protected <a 
href="../../../../../org/apache/shiro/crypto/hash/AbstractHash.html" 
title="class in org.apache.shiro.crypto.hash">AbstractHash</a></code></td>
-<td class="colLast"><code><strong><a 
href="../../../../../org/apache/shiro/authc/credential/HashedCredentialsMatcher.html#newHashInstance()">newHashInstance</a></strong>()</code>
-<div class="block">Returns a new, <em>uninitialized</em> instance, without its 
byte array set.</div>
-</td>
-</tr>
-<tr class="altColor">
-<td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><strong><a 
href="../../../../../org/apache/shiro/authc/credential/HashedCredentialsMatcher.html#setHashAlgorithmName(java.lang.String)">setHashAlgorithmName</a></strong>(<a
 
href="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true";
 title="class or interface in 
java.lang">String</a>&nbsp;hashAlgorithmName)</code>
-<div class="block">Sets the <code>Hash</code> <a 
href="../../../../../org/apache/shiro/crypto/hash/Hash.html#getAlgorithmName()"><code>algorithmName</code></a>
 to use
- when performing hashes for credentials matching.</div>
-</td>
-</tr>
-<tr class="rowColor">
-<td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><strong><a 
href="../../../../../org/apache/shiro/authc/credential/HashedCredentialsMatcher.html#setHashIterations(int)">setHashIterations</a></strong>(int&nbsp;hashIterations)</code>
-<div class="block">Sets the number of times a submitted 
<code>AuthenticationToken</code>'s credentials will be hashed before comparing
- to the credentials stored in the system.</div>
-</td>
-</tr>
-<tr class="altColor">
-<td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><strong><a 
href="../../../../../org/apache/shiro/authc/credential/HashedCredentialsMatcher.html#setHashSalted(boolean)">setHashSalted</a></strong>(boolean&nbsp;hashSalted)</code>
-<div class="block"><strong>Deprecated.</strong>&nbsp;
-<div class="block"><i>since Shiro 1.1.  Hash salting is now expected to be 
based on if the <a 
href="../../../../../org/apache/shiro/authc/AuthenticationInfo.html" 
title="interface in org.apache.shiro.authc"><code>AuthenticationInfo</code></a>
-             returned from the <code>Realm</code> is a <a 
href="../../../../../org/apache/shiro/authc/SaltedAuthenticationInfo.html" 
title="interface in 
org.apache.shiro.authc"><code>SaltedAuthenticationInfo</code></a> instance and 
its
-             <a 
href="../../../../../org/apache/shiro/authc/SaltedAuthenticationInfo.html#getCredentialsSalt()"><code>getCredentialsSalt()</code></a>
 method returns a non-null value.
-             This method and the 1.0 behavior still exists for backwards 
compatibility if the <code>Realm</code> does not return
-             <code>SaltedAuthenticationInfo</code> instances, but <b>it is 
highly recommended that <code>Realm</code> implementations
-             that support hashed credentials start returning <a 
href="../../../../../org/apache/shiro/authc/SaltedAuthenticationInfo.html" 
title="interface in 
org.apache.shiro.authc"><code>SaltedAuthenticationInfo</code></a>
-             instances as soon as possible</b>.
-             <p/>
-             This is because salts should always be obtained from the stored 
account information and
-             never be interpreted based on user/Subject-entered data.  
User-entered data is easier to compromise for
-             attackers, whereas account-unique (and secure randomly-generated) 
salts never disseminated to the end-user
-             are almost impossible to break.  This method will be removed in 
Shiro 2.0.</i></div>
-</div>
-</td>
-</tr>
-<tr class="rowColor">
-<td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><strong><a 
href="../../../../../org/apache/shiro/authc/credential/HashedCredentialsMatcher.html#setStoredCredentialsHexEncoded(boolean)">setStoredCredentialsHexEncoded</a></strong>(boolean&nbsp;storedCredentialsHexEncoded)</code>
-<div class="block">Sets the indicator if this system's stored credential hash 
is Hex encoded or not.</div>
-</td>
-</tr>
-</table>
-<ul class="blockList">
-<li class="blockList"><a 
name="methods_inherited_from_class_org.apache.shiro.authc.credential.SimpleCredentialsMatcher">
-<!--   -->
-</a>
-<h3>Methods inherited from class&nbsp;org.apache.shiro.authc.credential.<a 
href="../../../../../org/apache/shiro/authc/credential/SimpleCredentialsMatcher.html"
 title="class in 
org.apache.shiro.authc.credential">SimpleCredentialsMatcher</a></h3>
-<code><a 
href="../../../../../org/apache/shiro/authc/credential/SimpleCredentialsMatcher.html#equals(java.lang.Object,
 java.lang.Object)">equals</a>, <a 
href="../../../../../org/apache/shiro/authc/credential/SimpleCredentialsMatcher.html#getCredentials(org.apache.shiro.authc.AuthenticationToken)">getCredentials</a></code></li>
-</ul>
-<ul class="blockList">
-<li class="blockList"><a 
name="methods_inherited_from_class_org.apache.shiro.codec.CodecSupport">
-<!--   -->
-</a>
-<h3>Methods inherited from class&nbsp;org.apache.shiro.codec.<a 
href="../../../../../org/apache/shiro/codec/CodecSupport.html" title="class in 
org.apache.shiro.codec">CodecSupport</a></h3>
-<code><a 
href="../../../../../org/apache/shiro/codec/CodecSupport.html#isByteSource(java.lang.Object)">isByteSource</a>,
 <a 
href="../../../../../org/apache/shiro/codec/CodecSupport.html#objectToBytes(java.lang.Object)">objectToBytes</a>,
 <a 
href="../../../../../org/apache/shiro/codec/CodecSupport.html#objectToString(java.lang.Object)">objectToString</a>,
 <a 
href="../../../../../org/apache/shiro/codec/CodecSupport.html#toBytes(char[])">toBytes</a>,
 <a 
href="../../../../../org/apache/shiro/codec/CodecSupport.html#toBytes(char[], 
java.lang.String)">toBytes</a>, <a 
href="../../../../../org/apache/shiro/codec/CodecSupport.html#toBytes(java.io.File)">toBytes</a>,
 <a 
href="../../../../../org/apache/shiro/codec/CodecSupport.html#toBytes(java.io.InputStream)">toBytes</a>,
 <a 
href="../../../../../org/apache/shiro/codec/CodecSupport.html#toBytes(java.lang.Object)">toBytes</a>,
 <a 
href="../../../../../org/apache/shiro/codec/CodecSupport.html#toBytes(java.lang.String)">toBytes</a>,
 <a href="../.
 ./../../../org/apache/shiro/codec/CodecSupport.html#toBytes(java.lang.String, 
java.lang.String)">toBytes</a>, <a 
href="../../../../../org/apache/shiro/codec/CodecSupport.html#toChars(byte[])">toChars</a>,
 <a 
href="../../../../../org/apache/shiro/codec/CodecSupport.html#toChars(byte[], 
java.lang.String)">toChars</a>, <a 
href="../../../../../org/apache/shiro/codec/CodecSupport.html#toString(byte[])">toString</a>,
 <a 
href="../../../../../org/apache/shiro/codec/CodecSupport.html#toString(byte[], 
java.lang.String)">toString</a>, <a 
href="../../../../../org/apache/shiro/codec/CodecSupport.html#toString(java.lang.Object)">toString</a></code></li>
-</ul>
-<ul class="blockList">
-<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
-<!--   -->
-</a>
-<h3>Methods inherited from class&nbsp;java.lang.<a 
href="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true";
 title="class or interface in java.lang">Object</a></h3>
-<code><a 
href="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#clone()"
 title="class or interface in java.lang">clone</a>, <a 
href="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)"
 title="class or interface in java.lang">equals</a>, <a 
href="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#finalize()"
 title="class or interface in java.lang">finalize</a>, <a 
href="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#getClass()"
 title="class or interface in java.lang">getClass</a>, <a 
href="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode()"
 title="class or interface in java.lang">hashCode</a>, <a 
href="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notify()"
 title="class or interface in java.lang">notify</a>, <a 
href="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-exter
 nal=true#notifyAll()" title="class or interface in java.lang">notifyAll</a>, 
<a 
href="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#toString()"
 title="class or interface in java.lang">toString</a>, <a 
href="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait()"
 title="class or interface in java.lang">wait</a>, <a 
href="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait(long)"
 title="class or interface in java.lang">wait</a>, <a 
href="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait(long,
 int)" title="class or interface in java.lang">wait</a></code></li>
-</ul>
-</li>
-</ul>
-</li>
-</ul>
-</div>
-<div class="details">
-<ul class="blockList">
-<li class="blockList">
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<ul class="blockList">
-<li class="blockList"><a name="constructor_detail">
-<!--   -->
-</a>
-<h3>Constructor Detail</h3>
-<a name="HashedCredentialsMatcher()">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>HashedCredentialsMatcher</h4>
-<pre>public&nbsp;<a 
href="../../../../../src-html/org/apache/shiro/authc/credential/HashedCredentialsMatcher.html#line.135">HashedCredentialsMatcher</a>()</pre>
-<div class="block">JavaBeans-compatibile no-arg constructor intended for use 
in IoC/Dependency Injection environments.  If you
- use this constructor, you <em>MUST</em> also additionally set the
- <a 
href="../../../../../org/apache/shiro/authc/credential/HashedCredentialsMatcher.html#setHashAlgorithmName(java.lang.String)"><code>hashAlgorithmName</code></a>
 property.</div>
-</li>
-</ul>
-<a name="HashedCredentialsMatcher(java.lang.String)">
-<!--   -->
-</a>
-<ul class="blockListLast">
-<li class="blockList">
-<h4>HashedCredentialsMatcher</h4>
-<pre>public&nbsp;<a 
href="../../../../../src-html/org/apache/shiro/authc/credential/HashedCredentialsMatcher.html#line.149">HashedCredentialsMatcher</a>(<a
 
href="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true";
 title="class or interface in 
java.lang">String</a>&nbsp;hashAlgorithmName)</pre>
-<div class="block">Creates an instance using the specified <a 
href="../../../../../org/apache/shiro/authc/credential/HashedCredentialsMatcher.html#getHashAlgorithmName()"><code>hashAlgorithmName</code></a>
 to hash submitted
- credentials.</div>
-<dl><dt><span 
class="strong">Parameters:</span></dt><dd><code>hashAlgorithmName</code> - the 
<code>Hash</code> <a 
href="../../../../../org/apache/shiro/crypto/hash/Hash.html#getAlgorithmName()"><code>algorithmName</code></a>
-                          to use when performing hashes for credentials 
matching.</dd><dt><span class="strong">Since:</span></dt>
-  <dd>1.1</dd></dl>
-</li>
-</ul>
-</li>
-</ul>
-<!-- ============ METHOD DETAIL ========== -->
-<ul class="blockList">
-<li class="blockList"><a name="method_detail">
-<!--   -->
-</a>
-<h3>Method Detail</h3>
-<a name="getHashAlgorithmName()">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>getHashAlgorithmName</h4>
-<pre>public&nbsp;<a 
href="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true";
 title="class or interface in java.lang">String</a>&nbsp;<a 
href="../../../../../src-html/org/apache/shiro/authc/credential/HashedCredentialsMatcher.html#line.165">getHashAlgorithmName</a>()</pre>
-<div class="block">Returns the <code>Hash</code> <a 
href="../../../../../org/apache/shiro/crypto/hash/Hash.html#getAlgorithmName()"><code>algorithmName</code></a>
 to use
- when performing hashes for credentials matching.</div>
-<dl><dt><span class="strong">Returns:</span></dt><dd>the <code>Hash</code> <a 
href="../../../../../org/apache/shiro/crypto/hash/Hash.html#getAlgorithmName()"><code>algorithmName</code></a>
 to use
-         when performing hashes for credentials matching.</dd><dt><span 
class="strong">Since:</span></dt>
-  <dd>1.1</dd></dl>
-</li>
-</ul>
-<a name="setHashAlgorithmName(java.lang.String)">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>setHashAlgorithmName</h4>
-<pre>public&nbsp;void&nbsp;<a 
href="../../../../../src-html/org/apache/shiro/authc/credential/HashedCredentialsMatcher.html#line.177">setHashAlgorithmName</a>(<a
 
href="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true";
 title="class or interface in 
java.lang">String</a>&nbsp;hashAlgorithmName)</pre>
-<div class="block">Sets the <code>Hash</code> <a 
href="../../../../../org/apache/shiro/crypto/hash/Hash.html#getAlgorithmName()"><code>algorithmName</code></a>
 to use
- when performing hashes for credentials matching.</div>
-<dl><dt><span 
class="strong">Parameters:</span></dt><dd><code>hashAlgorithmName</code> - the 
<code>Hash</code> <a 
href="../../../../../org/apache/shiro/crypto/hash/Hash.html#getAlgorithmName()"><code>algorithmName</code></a>
-                          to use when performing hashes for credentials 
matching.</dd><dt><span class="strong">Since:</span></dt>
-  <dd>1.1</dd></dl>
-</li>
-</ul>
-<a name="isStoredCredentialsHexEncoded()">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>isStoredCredentialsHexEncoded</h4>
-<pre>public&nbsp;boolean&nbsp;<a 
href="../../../../../src-html/org/apache/shiro/authc/credential/HashedCredentialsMatcher.html#line.192">isStoredCredentialsHexEncoded</a>()</pre>
-<div class="block">Returns <code>true</code> if the system's stored credential 
hash is Hex encoded, <code>false</code> if it
- is Base64 encoded.
- <p/>
- Default value is <code>true</code> for convenience - all of Shiro's <a 
href="../../../../../org/apache/shiro/crypto/hash/Hash.html" title="interface 
in org.apache.shiro.crypto.hash"><code>Hash#toString()</code></a>
- implementations return Hex encoded values by default, making this class's use 
with those implementations
- easier.</div>
-<dl><dt><span class="strong">Returns:</span></dt><dd><code>true</code> if the 
system's stored credential hash is Hex encoded, <code>false</code> if it
-         is Base64 encoded.  Default is <code>true</code></dd></dl>
-</li>
-</ul>
-<a name="setStoredCredentialsHexEncoded(boolean)">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>setStoredCredentialsHexEncoded</h4>
-<pre>public&nbsp;void&nbsp;<a 
href="../../../../../src-html/org/apache/shiro/authc/credential/HashedCredentialsMatcher.html#line.209">setStoredCredentialsHexEncoded</a>(boolean&nbsp;storedCredentialsHexEncoded)</pre>
-<div class="block">Sets the indicator if this system's stored credential hash 
is Hex encoded or not.
- <p/>
- A value of <code>true</code> will cause this class to decode the system 
credential from Hex, a
- value of <code>false</code> will cause this class to decode the system 
credential from Base64.
- <p/>
- Unless overridden via this method, the default value is <code>true</code> for 
convenience - all of Shiro's
- <a href="../../../../../org/apache/shiro/crypto/hash/Hash.html" 
title="interface in 
org.apache.shiro.crypto.hash"><code>Hash#toString()</code></a> implementations 
return Hex encoded values by default, making this class's use with
- those implementations easier.</div>
-<dl><dt><span 
class="strong">Parameters:</span></dt><dd><code>storedCredentialsHexEncoded</code>
 - the indicator if this system's stored credential hash is Hex
-                                    encoded or not ('not' automatically 
implying it is Base64 encoded).</dd></dl>
-</li>
-</ul>
-<a name="isHashSalted()">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>isHashSalted</h4>
-<pre><a 
href="http://java.sun.com/javase/6/docs/api/java/lang/Deprecated.html?is-external=true";
 title="class or interface in java.lang">@Deprecated</a>
-public&nbsp;boolean&nbsp;<a 
href="../../../../../src-html/org/apache/shiro/authc/credential/HashedCredentialsMatcher.html#line.237">isHashSalted</a>()</pre>
-<div class="block"><span class="strong">Deprecated.</span>&nbsp;<i>since Shiro 
1.1.  Hash salting is now expected to be based on if the <a 
href="../../../../../org/apache/shiro/authc/AuthenticationInfo.html" 
title="interface in org.apache.shiro.authc"><code>AuthenticationInfo</code></a>
-             returned from the <code>Realm</code> is a <a 
href="../../../../../org/apache/shiro/authc/SaltedAuthenticationInfo.html" 
title="interface in 
org.apache.shiro.authc"><code>SaltedAuthenticationInfo</code></a> instance and 
its
-             <a 
href="../../../../../org/apache/shiro/authc/SaltedAuthenticationInfo.html#getCredentialsSalt()"><code>getCredentialsSalt()</code></a>
 method returns a non-null value.
-             This method and the 1.0 behavior still exists for backwards 
compatibility if the <code>Realm</code> does not return
-             <code>SaltedAuthenticationInfo</code> instances, but <b>it is 
highly recommended that <code>Realm</code> implementations
-             that support hashed credentials start returning <a 
href="../../../../../org/apache/shiro/authc/SaltedAuthenticationInfo.html" 
title="interface in 
org.apache.shiro.authc"><code>SaltedAuthenticationInfo</code></a>
-             instances as soon as possible</b>.
-             <p/>
-             This is because salts should always be obtained from the stored 
account information and
-             never be interpreted based on user/Subject-entered data.  
User-entered data is easier to compromise for
-             attackers, whereas account-unique (and secure randomly-generated) 
salts never disseminated to the end-user
-             are almost impossible to break.  This method will be removed in 
Shiro 2.0.</i></div>
-<div class="block">Returns <code>true</code> if a submitted 
<code>AuthenticationToken</code>'s credentials should be salted when hashing,
- <code>false</code> if it should not be salted.
- <p/>
- If enabled, the salt used will be obtained via the <a 
href="../../../../../org/apache/shiro/authc/credential/HashedCredentialsMatcher.html#getSalt(org.apache.shiro.authc.AuthenticationToken)"><code>getSalt</code></a>
 method.
- <p/>
- The default value is <code>false</code>.</div>
-<dl><dt><span class="strong">Returns:</span></dt><dd><code>true</code> if a 
submitted <code>AuthenticationToken</code>'s credentials should be salted when 
hashing,
-         <code>false</code> if it should not be salted.</dd></dl>
-</li>
-</ul>
-<a name="setHashSalted(boolean)">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>setHashSalted</h4>
-<pre><a 
href="http://java.sun.com/javase/6/docs/api/java/lang/Deprecated.html?is-external=true";
 title="class or interface in java.lang">@Deprecated</a>
-public&nbsp;void&nbsp;<a 
href="../../../../../src-html/org/apache/shiro/authc/credential/HashedCredentialsMatcher.html#line.263">setHashSalted</a>(boolean&nbsp;hashSalted)</pre>
-<div class="block"><span class="strong">Deprecated.</span>&nbsp;<i>since Shiro 
1.1.  Hash salting is now expected to be based on if the <a 
href="../../../../../org/apache/shiro/authc/AuthenticationInfo.html" 
title="interface in org.apache.shiro.authc"><code>AuthenticationInfo</code></a>
-             returned from the <code>Realm</code> is a <a 
href="../../../../../org/apache/shiro/authc/SaltedAuthenticationInfo.html" 
title="interface in 
org.apache.shiro.authc"><code>SaltedAuthenticationInfo</code></a> instance and 
its
-             <a 
href="../../../../../org/apache/shiro/authc/SaltedAuthenticationInfo.html#getCredentialsSalt()"><code>getCredentialsSalt()</code></a>
 method returns a non-null value.
-             This method and the 1.0 behavior still exists for backwards 
compatibility if the <code>Realm</code> does not return
-             <code>SaltedAuthenticationInfo</code> instances, but <b>it is 
highly recommended that <code>Realm</code> implementations
-             that support hashed credentials start returning <a 
href="../../../../../org/apache/shiro/authc/SaltedAuthenticationInfo.html" 
title="interface in 
org.apache.shiro.authc"><code>SaltedAuthenticationInfo</code></a>
-             instances as soon as possible</b>.
-             <p/>
-             This is because salts should always be obtained from the stored 
account information and
-             never be interpreted based on user/Subject-entered data.  
User-entered data is easier to compromise for
-             attackers, whereas account-unique (and secure randomly-generated) 
salts never disseminated to the end-user
-             are almost impossible to break.  This method will be removed in 
Shiro 2.0.</i></div>
-<div class="block">Sets whether or not to salt a submitted 
<code>AuthenticationToken</code>'s credentials when hashing.
- <p/>
- If enabled, the salt used will be obtained via the <a 
href="../../../../../org/apache/shiro/authc/credential/HashedCredentialsMatcher.html#getSalt(org.apache.shiro.authc.AuthenticationToken)"><code>getCredentialsSalt</code></a>
 method.
- </p>
- The default value is <code>false</code>.</div>
-<dl><dt><span 
class="strong">Parameters:</span></dt><dd><code>hashSalted</code> - whether or 
not to salt a submitted <code>AuthenticationToken</code>'s credentials when 
hashing.</dd></dl>
-</li>
-</ul>
-<a name="getHashIterations()">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>getHashIterations</h4>
-<pre>public&nbsp;int&nbsp;<a 
href="../../../../../src-html/org/apache/shiro/authc/credential/HashedCredentialsMatcher.html#line.276">getHashIterations</a>()</pre>
-<div class="block">Returns the number of times a submitted 
<code>AuthenticationToken</code>'s credentials will be hashed before
- comparing to the credentials stored in the system.
- <p/>
- Unless overridden, the default value is <code>1</code>, meaning a normal hash 
execution will occur.</div>
-<dl><dt><span class="strong">Returns:</span></dt><dd>the number of times a 
submitted <code>AuthenticationToken</code>'s credentials will be hashed before
-         comparing to the credentials stored in the system.</dd></dl>
-</li>
-</ul>
-<a name="setHashIterations(int)">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>setHashIterations</h4>
-<pre>public&nbsp;void&nbsp;<a 
href="../../../../../src-html/org/apache/shiro/authc/credential/HashedCredentialsMatcher.html#line.291">setHashIterations</a>(int&nbsp;hashIterations)</pre>
-<div class="block">Sets the number of times a submitted 
<code>AuthenticationToken</code>'s credentials will be hashed before comparing
- to the credentials stored in the system.
- <p/>
- Unless overridden, the default value is <code>1</code>, meaning a normal 
single hash execution will occur.
- <p/>
- If this argument is less than 1 (i.e. 0 or negative), the default value of 1 
is applied.  There must always be
- at least 1 hash iteration (otherwise there would be no hash).</div>
-<dl><dt><span 
class="strong">Parameters:</span></dt><dd><code>hashIterations</code> - the 
number of times to hash a submitted <code>AuthenticationToken</code>'s 
credentials.</dd></dl>
-</li>
-</ul>
-<a name="getSalt(org.apache.shiro.authc.AuthenticationToken)">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>getSalt</h4>
-<pre><a 
href="http://java.sun.com/javase/6/docs/api/java/lang/Deprecated.html?is-external=true";
 title="class or interface in java.lang">@Deprecated</a>
-protected&nbsp;<a 
href="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true";
 title="class or interface in java.lang">Object</a>&nbsp;<a 
href="../../../../../src-html/org/apache/shiro/authc/credential/HashedCredentialsMatcher.html#line.321">getSalt</a>(<a
 href="../../../../../org/apache/shiro/authc/AuthenticationToken.html" 
title="interface in 
org.apache.shiro.authc">AuthenticationToken</a>&nbsp;token)</pre>
-<div class="block"><span class="strong">Deprecated.</span>&nbsp;<i>since Shiro 
1.1.  Hash salting is now expected to be based on if the <a 
href="../../../../../org/apache/shiro/authc/AuthenticationInfo.html" 
title="interface in org.apache.shiro.authc"><code>AuthenticationInfo</code></a>
-             returned from the <code>Realm</code> is a <a 
href="../../../../../org/apache/shiro/authc/SaltedAuthenticationInfo.html" 
title="interface in 
org.apache.shiro.authc"><code>SaltedAuthenticationInfo</code></a> instance and 
its
-             <a 
href="../../../../../org/apache/shiro/authc/SaltedAuthenticationInfo.html#getCredentialsSalt()"><code>getCredentialsSalt()</code></a>
 method returns a non-null value.
-             This method and the 1.0 behavior still exists for backwards 
compatibility if the <code>Realm</code> does not return
-             <code>SaltedAuthenticationInfo</code> instances, but <b>it is 
highly recommended that <code>Realm</code> implementations
-             that support hashed credentials start returning <a 
href="../../../../../org/apache/shiro/authc/SaltedAuthenticationInfo.html" 
title="interface in 
org.apache.shiro.authc"><code>SaltedAuthenticationInfo</code></a>
-             instances as soon as possible</b>.<p/>
-             This is because salts should always be obtained from the stored 
account information and
-             never be interpreted based on user/Subject-entered data.  
User-entered data is easier to compromise for
-             attackers, whereas account-unique (and secure randomly-generated) 
salts never disseminated to the end-user
-             are almost impossible to break.  This method will be removed in 
Shiro 2.0.</i></div>
-<div class="block">Returns a salt value used to hash the token's credentials.
- <p/>
- This default implementation merely returns <code>token.getPrincipal()</code>, 
effectively using the user's
- identity (username, user id, etc) as the salt, a most common technique.  If 
you wish to provide the
- authentication token's salt another way, you may override this method.</div>
-<dl><dt><span class="strong">Parameters:</span></dt><dd><code>token</code> - 
the AuthenticationToken submitted during the authentication attempt.</dd>
-<dt><span class="strong">Returns:</span></dt><dd>a salt value to use to hash 
the authentication token's credentials.</dd></dl>
-</li>
-</ul>
-<a name="getCredentials(org.apache.shiro.authc.AuthenticationInfo)">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>getCredentials</h4>
-<pre>protected&nbsp;<a 
href="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true";
 title="class or interface in java.lang">Object</a>&nbsp;<a 
href="../../../../../src-html/org/apache/shiro/authc/credential/HashedCredentialsMatcher.html#line.344">getCredentials</a>(<a
 href="../../../../../org/apache/shiro/authc/AuthenticationInfo.html" 
title="interface in 
org.apache.shiro.authc">AuthenticationInfo</a>&nbsp;info)</pre>
-<div class="block">Returns a <a 
href="../../../../../org/apache/shiro/crypto/hash/Hash.html" title="interface 
in org.apache.shiro.crypto.hash"><code>Hash</code></a> instance representing 
the already-hashed AuthenticationInfo credentials stored in the system.
- <p/>
- This method reconstructs a <a 
href="../../../../../org/apache/shiro/crypto/hash/Hash.html" title="interface 
in org.apache.shiro.crypto.hash"><code>Hash</code></a> instance based on a 
<code>info.getCredentials</code> call,
- but it does <em>not</em> hash that value - it is expected that method call 
will return an already-hashed value.
- <p/>
- This implementation's reconstruction effort functions as follows:
- <ol>
- <li>Convert <code>account.getCredentials()</code> to a byte array via the <a 
href="../../../../../org/apache/shiro/codec/CodecSupport.html#toBytes(char[])"><code>toBytes</code></a>
 method.
- <li>If <code>account.getCredentials()</code> was originally a String or 
char[] before <code>toBytes</code> was
- called, check for encoding:
- <li>If <a 
href="../../../../../org/apache/shiro/authc/credential/HashedCredentialsMatcher.html#storedCredentialsHexEncoded"><code>storedCredentialsHexEncoded</code></a>,
 Hex decode that byte array, otherwise
- Base64 decode the byte array</li>
- <li>Set the byte[] array directly on the <code>Hash</code> implementation and 
return it.</li>
- </ol></div>
-<dl>
-<dt><strong>Overrides:</strong></dt>
-<dd><code><a 
href="../../../../../org/apache/shiro/authc/credential/SimpleCredentialsMatcher.html#getCredentials(org.apache.shiro.authc.AuthenticationInfo)">getCredentials</a></code>&nbsp;in
 class&nbsp;<code><a 
href="../../../../../org/apache/shiro/authc/credential/SimpleCredentialsMatcher.html"
 title="class in 
org.apache.shiro.authc.credential">SimpleCredentialsMatcher</a></code></dd>
-<dt><span class="strong">Parameters:</span></dt><dd><code>info</code> - the 
AuthenticationInfo from which to retrieve the credentials which assumed to be 
in already-hashed form.</dd>
-<dt><span class="strong">Returns:</span></dt><dd>a <a 
href="../../../../../org/apache/shiro/crypto/hash/Hash.html" title="interface 
in org.apache.shiro.crypto.hash"><code>Hash</code></a> instance representing 
the given AuthenticationInfo's stored credentials.</dd></dl>
-</li>
-</ul>
-<a name="doCredentialsMatch(org.apache.shiro.authc.AuthenticationToken, 
org.apache.shiro.authc.AuthenticationInfo)">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>doCredentialsMatch</h4>
-<pre>public&nbsp;boolean&nbsp;<a 
href="../../../../../src-html/org/apache/shiro/authc/credential/HashedCredentialsMatcher.html#line.378">doCredentialsMatch</a>(<a
 href="../../../../../org/apache/shiro/authc/AuthenticationToken.html" 
title="interface in org.apache.shiro.authc">AuthenticationToken</a>&nbsp;token,
-                         <a 
href="../../../../../org/apache/shiro/authc/AuthenticationInfo.html" 
title="interface in 
org.apache.shiro.authc">AuthenticationInfo</a>&nbsp;info)</pre>
-<div class="block">This implementation first hashes the <code>token</code>'s 
credentials, potentially using a
- <code>salt</code> if the <code>info</code> argument is a
- <a href="../../../../../org/apache/shiro/authc/SaltedAuthenticationInfo.html" 
title="interface in 
org.apache.shiro.authc"><code>SaltedAuthenticationInfo</code></a>.  It then 
compares the hash
- against the <code>AuthenticationInfo</code>'s
- <a 
href="../../../../../org/apache/shiro/authc/credential/HashedCredentialsMatcher.html#getCredentials(org.apache.shiro.authc.AuthenticationInfo)"><code>already-hashed
 credentials</code></a>.  This method
- returns <code>true</code> if those two values are <a 
href="../../../../../org/apache/shiro/authc/credential/SimpleCredentialsMatcher.html#equals(java.lang.Object,
 java.lang.Object)"><code>equal</code></a>, <code>false</code> otherwise.</div>
-<dl>
-<dt><strong>Specified by:</strong></dt>
-<dd><code><a 
href="../../../../../org/apache/shiro/authc/credential/CredentialsMatcher.html#doCredentialsMatch(org.apache.shiro.authc.AuthenticationToken,
 
org.apache.shiro.authc.AuthenticationInfo)">doCredentialsMatch</a></code>&nbsp;in
 interface&nbsp;<code><a 
href="../../../../../org/apache/shiro/authc/credential/CredentialsMatcher.html" 
title="interface in 
org.apache.shiro.authc.credential">CredentialsMatcher</a></code></dd>
-<dt><strong>Overrides:</strong></dt>
-<dd><code><a 
href="../../../../../org/apache/shiro/authc/credential/SimpleCredentialsMatcher.html#doCredentialsMatch(org.apache.shiro.authc.AuthenticationToken,
 
org.apache.shiro.authc.AuthenticationInfo)">doCredentialsMatch</a></code>&nbsp;in
 class&nbsp;<code><a 
href="../../../../../org/apache/shiro/authc/credential/SimpleCredentialsMatcher.html"
 title="class in 
org.apache.shiro.authc.credential">SimpleCredentialsMatcher</a></code></dd>
-<dt><span class="strong">Parameters:</span></dt><dd><code>token</code> - the 
<code>AuthenticationToken</code> submitted during the authentication 
attempt.</dd><dd><code>info</code> - the <code>AuthenticationInfo</code> stored 
in the system matching the token principal</dd>
-<dt><span class="strong">Returns:</span></dt><dd><code>true</code> if the 
provided token credentials hash match to the stored account credentials hash,
-         <code>false</code> otherwise</dd><dt><span 
class="strong">Since:</span></dt>
-  <dd>1.1</dd></dl>
-</li>
-</ul>
-<a name="hashProvidedCredentials(org.apache.shiro.authc.AuthenticationToken, 
org.apache.shiro.authc.AuthenticationInfo)">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>hashProvidedCredentials</h4>
-<pre>protected&nbsp;<a 
href="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true";
 title="class or interface in java.lang">Object</a>&nbsp;<a 
href="../../../../../src-html/org/apache/shiro/authc/credential/HashedCredentialsMatcher.html#line.402">hashProvidedCredentials</a>(<a
 href="../../../../../org/apache/shiro/authc/AuthenticationToken.html" 
title="interface in org.apache.shiro.authc">AuthenticationToken</a>&nbsp;token,
-                             <a 
href="../../../../../org/apache/shiro/authc/AuthenticationInfo.html" 
title="interface in 
org.apache.shiro.authc">AuthenticationInfo</a>&nbsp;info)</pre>
-<div class="block">Hash the provided <code>token</code>'s credentials using 
the salt stored with the account if the
- <code>info</code> instance is an <code>instanceof</code> <a 
href="../../../../../org/apache/shiro/authc/SaltedAuthenticationInfo.html" 
title="interface in 
org.apache.shiro.authc"><code>SaltedAuthenticationInfo</code></a> (see
- the class-level JavaDoc for why this is the preferred approach).
- <p/>
- If the <code>info</code> instance is <em>not</em>
- an <code>instanceof</code> <code>SaltedAuthenticationInfo</code>, the logic 
will fall back to Shiro 1.0
- backwards-compatible logic:  it will first check to see <a 
href="../../../../../org/apache/shiro/authc/credential/HashedCredentialsMatcher.html#isHashSalted()"><code>isHashSalted</code></a>
 and if so, will try
- to acquire the salt from <a 
href="../../../../../org/apache/shiro/authc/credential/HashedCredentialsMatcher.html#getSalt(org.apache.shiro.authc.AuthenticationToken)"><code>getSalt(AuthenticationToken)</code></a>.
  See the class-level
- JavaDoc for why this is not recommended.  This 'fallback' logic exists only 
for backwards-compatibility.
- <code>Realm</code>s should be updated as soon as possible to return 
<code>SaltedAuthenticationInfo</code> instances
- if account credentials salting is enabled (highly recommended for 
password-based systems).</div>
-<dl><dt><span class="strong">Parameters:</span></dt><dd><code>token</code> - 
the submitted authentication token from which its credentials will be 
hashed</dd><dd><code>info</code> - the stored account data, potentially used to 
acquire a salt</dd>
-<dt><span class="strong">Returns:</span></dt><dd>the token credentials 
hash</dd><dt><span class="strong">Since:</span></dt>
-  <dd>1.1</dd></dl>
-</li>
-</ul>
-<a name="hashProvidedCredentials(java.lang.Object, java.lang.Object, int)">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>hashProvidedCredentials</h4>
-<pre>protected&nbsp;<a 
href="../../../../../org/apache/shiro/crypto/hash/Hash.html" title="interface 
in org.apache.shiro.crypto.hash">Hash</a>&nbsp;<a 
href="../../../../../src-html/org/apache/shiro/authc/credential/HashedCredentialsMatcher.html#line.443">hashProvidedCredentials</a>(<a
 
href="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true";
 title="class or interface in java.lang">Object</a>&nbsp;credentials,
-                           <a 
href="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true";
 title="class or interface in java.lang">Object</a>&nbsp;salt,
-                           int&nbsp;hashIterations)</pre>
-<div class="block">Hashes the provided credentials a total of 
<code>hashIterations</code> times, using the given salt.  The hash
- implementation/algorithm used is based on the <a 
href="../../../../../org/apache/shiro/authc/credential/HashedCredentialsMatcher.html#getHashAlgorithmName()"><code>hashAlgorithmName</code></a>
 property.</div>
-<dl><dt><span 
class="strong">Parameters:</span></dt><dd><code>credentials</code> - the 
submitted authentication token's credentials to hash</dd><dd><code>salt</code> 
- the value to salt the hash, or <code>null</code> if a salt will not be 
used.</dd><dd><code>hashIterations</code> - the number of times to hash the 
credentials.  At least one hash will always occur though,
-                       even if this argument is 0 or negative.</dd>
-<dt><span class="strong">Returns:</span></dt><dd>the hashed value of the 
provided credentials, according to the specified salt and hash 
iterations.</dd></dl>
-</li>
-</ul>
-<a name="newHashInstance()">
-<!--   -->
-</a>
-<ul class="blockListLast">
-<li class="blockList">
-<h4>newHashInstance</h4>
-<pre>protected&nbsp;<a 
href="../../../../../org/apache/shiro/crypto/hash/AbstractHash.html" 
title="class in org.apache.shiro.crypto.hash">AbstractHash</a>&nbsp;<a 
href="../../../../../src-html/org/apache/shiro/authc/credential/HashedCredentialsMatcher.html#line.454">newHashInstance</a>()</pre>
-<div class="block">Returns a new, <em>uninitialized</em> instance, without its 
byte array set.  Used as a utility method in the
- <a 
href="../../../../../org/apache/shiro/authc/credential/SimpleCredentialsMatcher.html#getCredentials(org.apache.shiro.authc.AuthenticationInfo)"><code>getCredentials(AuthenticationInfo)</code></a>
 implementation.</div>
-<dl><dt><span class="strong">Returns:</span></dt><dd>a new, 
<em>uninitialized</em> instance, without its byte array set.</dd></dl>
-</li>
-</ul>
-</li>
-</ul>
-</li>
-</ul>
-</div>
-</div>
-<!-- ========= END OF CLASS DATA ========= -->
-<!-- ======= START OF BOTTOM NAVBAR ====== -->
-<div class="bottomNav"><a name="navbar_bottom">
-<!--   -->
-</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a 
name="navbar_bottom_firstrow">
-<!--   -->
-</a>
-<ul class="navList" title="Navigation">
-<li><a href="../../../../../overview-summary.html">Overview</a></li>
-<li><a href="package-summary.html">Package</a></li>
-<li class="navBarCell1Rev">Class</li>
-<li><a href="class-use/HashedCredentialsMatcher.html">Use</a></li>
-<li><a href="package-tree.html">Tree</a></li>
-<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
-<li><a href="../../../../../index-all.html">Index</a></li>
-<li><a href="../../../../../help-doc.html">Help</a></li>
-</ul>
-</div>
-<div class="subNav">
-<ul class="navList">
-<li><a 
href="../../../../../org/apache/shiro/authc/credential/DefaultPasswordService.html"
 title="class in org.apache.shiro.authc.credential"><span class="strong">Prev 
Class</span></a></li>
-<li><a 
href="../../../../../org/apache/shiro/authc/credential/HashingPasswordService.html"
 title="interface in org.apache.shiro.authc.credential"><span 
class="strong">Next Class</span></a></li>
-</ul>
-<ul class="navList">
-<li><a 
href="../../../../../index.html?org/apache/shiro/authc/credential/HashedCredentialsMatcher.html"
 target="_top">Frames</a></li>
-<li><a href="HashedCredentialsMatcher.html" target="_top">No Frames</a></li>
-</ul>
-<ul class="navList" id="allclasses_navbar_bottom">
-<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
-</ul>
-<div>
-<script type="text/javascript"><!--
-  allClassesLink = document.getElementById("allclasses_navbar_bottom");
-  if(window==top) {
-    allClassesLink.style.display = "block";
-  }
-  else {
-    allClassesLink.style.display = "none";
-  }
-  //-->
-</script>
-</div>
-<div>
-<ul class="subNavList">
-<li>Summary:&nbsp;</li>
-<li>Nested&nbsp;|&nbsp;</li>
-<li><a 
href="#fields_inherited_from_class_org.apache.shiro.codec.CodecSupport">Field</a>&nbsp;|&nbsp;</li>
-<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
-<li><a href="#method_summary">Method</a></li>
-</ul>
-<ul class="subNavList">
-<li>Detail:&nbsp;</li>
-<li>Field&nbsp;|&nbsp;</li>
-<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
-<li><a href="#method_detail">Method</a></li>
-</ul>
-</div>
-<a name="skip-navbar_bottom">
-<!--   -->
-</a></div>
-<!-- ======== END OF BOTTOM NAVBAR ======= -->
-<p class="legalCopy"><small>Copyright &#169; 2004-2013 <a 
href="http://www.apache.org/";>The Apache Software Foundation</a>. All Rights 
Reserved.</small></p>
-</body>
-</html>

http://git-wip-us.apache.org/repos/asf/shiro-site/blob/5896aacc/static/1.2.1/apidocs/org/apache/shiro/authc/credential/HashingPasswordService.html
----------------------------------------------------------------------
diff --git 
a/static/1.2.1/apidocs/org/apache/shiro/authc/credential/HashingPasswordService.html
 
b/static/1.2.1/apidocs/org/apache/shiro/authc/credential/HashingPasswordService.html
deleted file mode 100644
index 0a72e0d..0000000
--- 
a/static/1.2.1/apidocs/org/apache/shiro/authc/credential/HashingPasswordService.html
+++ /dev/null
@@ -1,300 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd";>
-<!-- NewPage -->
-<html lang="en">
-<head>
-<!-- Generated by javadoc (version 1.7.0_21) on Thu May 30 14:51:23 PDT 2013 
-->
-<meta http-equiv="Content-Type" content="text/html" charset="UTF-8">
-<title>HashingPasswordService (Apache Shiro 1.2.1 API)</title>
-<meta name="date" content="2013-05-30">
-<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" 
title="Style">
-</head>
-<body>
-<script type="text/javascript"><!--
-    if (location.href.indexOf('is-external=true') == -1) {
-        parent.document.title="HashingPasswordService (Apache Shiro 1.2.1 
API)";
-    }
-//-->
-</script>
-<noscript>
-<div>JavaScript is disabled on your browser.</div>
-</noscript>
-<!-- Begin Google Analytics code -->   <script type="text/javascript">       
var _gaq = _gaq || [];       _gaq.push(['_setAccount', 'UA-11551827-1']);       
_gaq.push(['_trackPageview']);        (function() {         var ga = 
document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; 
        ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 
'http://www') + '.google-analytics.com/ga.js';         var s = 
document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);   
    })();   </script>   <!-- End Google Analytics code -->
-<!-- ========= START OF TOP NAVBAR ======= -->
-<div class="topNav"><a name="navbar_top">
-<!--   -->
-</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a 
name="navbar_top_firstrow">
-<!--   -->
-</a>
-<ul class="navList" title="Navigation">
-<li><a href="../../../../../overview-summary.html">Overview</a></li>
-<li><a href="package-summary.html">Package</a></li>
-<li class="navBarCell1Rev">Class</li>
-<li><a href="class-use/HashingPasswordService.html">Use</a></li>
-<li><a href="package-tree.html">Tree</a></li>
-<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
-<li><a href="../../../../../index-all.html">Index</a></li>
-<li><a href="../../../../../help-doc.html">Help</a></li>
-</ul>
-</div>
-<div class="subNav">
-<ul class="navList">
-<li><a 
href="../../../../../org/apache/shiro/authc/credential/HashedCredentialsMatcher.html"
 title="class in org.apache.shiro.authc.credential"><span class="strong">Prev 
Class</span></a></li>
-<li><a 
href="../../../../../org/apache/shiro/authc/credential/Md2CredentialsMatcher.html"
 title="class in org.apache.shiro.authc.credential"><span class="strong">Next 
Class</span></a></li>
-</ul>
-<ul class="navList">
-<li><a 
href="../../../../../index.html?org/apache/shiro/authc/credential/HashingPasswordService.html"
 target="_top">Frames</a></li>
-<li><a href="HashingPasswordService.html" target="_top">No Frames</a></li>
-</ul>
-<ul class="navList" id="allclasses_navbar_top">
-<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
-</ul>
-<div>
-<script type="text/javascript"><!--
-  allClassesLink = document.getElementById("allclasses_navbar_top");
-  if(window==top) {
-    allClassesLink.style.display = "block";
-  }
-  else {
-    allClassesLink.style.display = "none";
-  }
-  //-->
-</script>
-</div>
-<div>
-<ul class="subNavList">
-<li>Summary:&nbsp;</li>
-<li>Nested&nbsp;|&nbsp;</li>
-<li>Field&nbsp;|&nbsp;</li>
-<li>Constr&nbsp;|&nbsp;</li>
-<li><a href="#method_summary">Method</a></li>
-</ul>
-<ul class="subNavList">
-<li>Detail:&nbsp;</li>
-<li>Field&nbsp;|&nbsp;</li>
-<li>Constr&nbsp;|&nbsp;</li>
-<li><a href="#method_detail">Method</a></li>
-</ul>
-</div>
-<a name="skip-navbar_top">
-<!--   -->
-</a></div>
-<!-- ========= END OF TOP NAVBAR ========= -->
-<!-- ======== START OF CLASS DATA ======== -->
-<div class="header">
-<div class="subTitle">org.apache.shiro.authc.credential</div>
-<h2 title="Interface HashingPasswordService" class="title">Interface 
HashingPasswordService</h2>
-</div>
-<div class="contentContainer">
-<div class="description">
-<ul class="blockList">
-<li class="blockList">
-<dl>
-<dt>All Superinterfaces:</dt>
-<dd><a 
href="../../../../../org/apache/shiro/authc/credential/PasswordService.html" 
title="interface in org.apache.shiro.authc.credential">PasswordService</a></dd>
-</dl>
-<dl>
-<dt>All Known Implementing Classes:</dt>
-<dd><a 
href="../../../../../org/apache/shiro/authc/credential/DefaultPasswordService.html"
 title="class in 
org.apache.shiro.authc.credential">DefaultPasswordService</a></dd>
-</dl>
-<hr>
-<br>
-<pre>public interface <a 
href="../../../../../src-html/org/apache/shiro/authc/credential/HashingPasswordService.html#line.30">HashingPasswordService</a>
-extends <a 
href="../../../../../org/apache/shiro/authc/credential/PasswordService.html" 
title="interface in org.apache.shiro.authc.credential">PasswordService</a></pre>
-<div class="block">A <code>HashingPasswordService</code> is a <a 
href="../../../../../org/apache/shiro/authc/credential/PasswordService.html" 
title="interface in 
org.apache.shiro.authc.credential"><code>PasswordService</code></a> that 
performs password encryption and comparisons
- based on cryptographic <a 
href="../../../../../org/apache/shiro/crypto/hash/Hash.html" title="interface 
in org.apache.shiro.crypto.hash"><code>Hash</code></a>es.</div>
-<dl><dt><span class="strong">Since:</span></dt>
-  <dd>1.2</dd></dl>
-</li>
-</ul>
-</div>
-<div class="summary">
-<ul class="blockList">
-<li class="blockList">
-<!-- ========== METHOD SUMMARY =========== -->
-<ul class="blockList">
-<li class="blockList"><a name="method_summary">
-<!--   -->
-</a>
-<h3>Method Summary</h3>
-<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" 
summary="Method Summary table, listing methods, and an explanation">
-<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
-<tr>
-<th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Method and Description</th>
-</tr>
-<tr class="altColor">
-<td class="colFirst"><code><a 
href="../../../../../org/apache/shiro/crypto/hash/Hash.html" title="interface 
in org.apache.shiro.crypto.hash">Hash</a></code></td>
-<td class="colLast"><code><strong><a 
href="../../../../../org/apache/shiro/authc/credential/HashingPasswordService.html#hashPassword(java.lang.Object)">hashPassword</a></strong>(<a
 
href="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true";
 title="class or interface in java.lang">Object</a>&nbsp;plaintext)</code>
-<div class="block">Hashes the specified plaintext password using internal 
hashing configuration settings pertinent to password
- hashing.</div>
-</td>
-</tr>
-<tr class="rowColor">
-<td class="colFirst"><code>boolean</code></td>
-<td class="colLast"><code><strong><a 
href="../../../../../org/apache/shiro/authc/credential/HashingPasswordService.html#passwordsMatch(java.lang.Object,
 org.apache.shiro.crypto.hash.Hash)">passwordsMatch</a></strong>(<a 
href="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true";
 title="class or interface in java.lang">Object</a>&nbsp;plaintext,
-                            <a 
href="../../../../../org/apache/shiro/crypto/hash/Hash.html" title="interface 
in org.apache.shiro.crypto.hash">Hash</a>&nbsp;savedPasswordHash)</code>
-<div class="block">Returns <code>true</code> if the 
<code>submittedPlaintext</code> password matches the existing 
<code>savedPasswordHash</code>,
- <code>false</code> otherwise.</div>
-</td>
-</tr>
-</table>
-<ul class="blockList">
-<li class="blockList"><a 
name="methods_inherited_from_class_org.apache.shiro.authc.credential.PasswordService">
-<!--   -->
-</a>
-<h3>Methods inherited from interface&nbsp;org.apache.shiro.authc.credential.<a 
href="../../../../../org/apache/shiro/authc/credential/PasswordService.html" 
title="interface in org.apache.shiro.authc.credential">PasswordService</a></h3>
-<code><a 
href="../../../../../org/apache/shiro/authc/credential/PasswordService.html#encryptPassword(java.lang.Object)">encryptPassword</a>,
 <a 
href="../../../../../org/apache/shiro/authc/credential/PasswordService.html#passwordsMatch(java.lang.Object,
 java.lang.String)">passwordsMatch</a></code></li>
-</ul>
-</li>
-</ul>
-</li>
-</ul>
-</div>
-<div class="details">
-<ul class="blockList">
-<li class="blockList">
-<!-- ============ METHOD DETAIL ========== -->
-<ul class="blockList">
-<li class="blockList"><a name="method_detail">
-<!--   -->
-</a>
-<h3>Method Detail</h3>
-<a name="hashPassword(java.lang.Object)">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>hashPassword</h4>
-<pre><a href="../../../../../org/apache/shiro/crypto/hash/Hash.html" 
title="interface in org.apache.shiro.crypto.hash">Hash</a>&nbsp;<a 
href="../../../../../src-html/org/apache/shiro/authc/credential/HashingPasswordService.html#line.68">hashPassword</a>(<a
 
href="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true";
 title="class or interface in java.lang">Object</a>&nbsp;plaintext)
-                  throws <a 
href="http://java.sun.com/javase/6/docs/api/java/lang/IllegalArgumentException.html?is-external=true";
 title="class or interface in java.lang">IllegalArgumentException</a></pre>
-<div class="block">Hashes the specified plaintext password using internal 
hashing configuration settings pertinent to password
- hashing.
- <p/>
- Note
- that this method is only likely to be used in more complex environments that 
wish to format and/or save the
- returned <code>Hash</code> object in a custom manner.  Most applications will 
find the
- <a 
href="../../../../../org/apache/shiro/authc/credential/PasswordService.html#encryptPassword(java.lang.Object)"><code>encryptPassword</code></a>
 method suitable enough for safety
- and ease-of-use.
- <h3>Usage</h3>
- The input argument type can be any 'byte backed' <code>Object</code> - almost 
always either a
- String or character array representing passwords (character arrays are often 
a safer way to represent passwords
- as they can be cleared/nulled-out after use.  Any argument type supported by
- <code>ByteSource.Util#isCompatible(Object)</code> is valid.
- <p/>
- Regardless of your choice of using Strings or character arrays to represent 
submitted passwords, you can wrap
- either as a <code>ByteSource</code> by using <code>ByteSource.Util</code>, 
for example, when the passwords are captured as
- Strings:
- <pre>
- ByteSource passwordBytes = ByteSource.Util.bytes(submittedPasswordString);
- Hash hashedPassword = hashingPasswordService.hashPassword(passwordBytes);
- </pre>
- or, identically, when captured as a character array:
- <pre>
- ByteSource passwordBytes = 
ByteSource.Util.bytes(submittedPasswordCharacterArray);
- Hash hashedPassword = hashingPasswordService.hashPassword(passwordBytes);
- </pre></div>
-<dl><dt><span class="strong">Parameters:</span></dt><dd><code>plaintext</code> 
- the raw password as 'byte-backed' object (String, character array, <a 
href="../../../../../org/apache/shiro/util/ByteSource.html" title="interface in 
org.apache.shiro.util"><code>ByteSource</code></a>,
-                  etc) usually acquired from your application's 'new user' or 
'password reset' workflow.</dd>
-<dt><span class="strong">Returns:</span></dt><dd>the hashed password.</dd>
-<dt><span class="strong">Throws:</span></dt>
-<dd><code><a 
href="http://java.sun.com/javase/6/docs/api/java/lang/IllegalArgumentException.html?is-external=true";
 title="class or interface in java.lang">IllegalArgumentException</a></code> - 
if the argument cannot be easily converted to bytes as defined by
-                                  
<code>ByteSource.Util#isCompatible(Object)</code>.</dd><dt><span 
class="strong">See 
Also:</span></dt><dd><code>ByteSource.Util#isCompatible(Object)</code>, 
-<a 
href="../../../../../org/apache/shiro/authc/credential/PasswordService.html#encryptPassword(java.lang.Object)"><code>PasswordService.encryptPassword(Object)</code></a></dd></dl>
-</li>
-</ul>
-<a name="passwordsMatch(java.lang.Object, org.apache.shiro.crypto.hash.Hash)">
-<!--   -->
-</a>
-<ul class="blockListLast">
-<li class="blockList">
-<h4>passwordsMatch</h4>
-<pre>boolean&nbsp;<a 
href="../../../../../src-html/org/apache/shiro/authc/credential/HashingPasswordService.html#line.90">passwordsMatch</a>(<a
 
href="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true";
 title="class or interface in java.lang">Object</a>&nbsp;plaintext,
-                     <a 
href="../../../../../org/apache/shiro/crypto/hash/Hash.html" title="interface 
in org.apache.shiro.crypto.hash">Hash</a>&nbsp;savedPasswordHash)</pre>
-<div class="block">Returns <code>true</code> if the 
<code>submittedPlaintext</code> password matches the existing 
<code>savedPasswordHash</code>,
- <code>false</code> otherwise.  Note that this method is only likely to be 
used in more complex environments that
- save hashes in a custom manner.  Most applications will find the
- <a 
href="../../../../../org/apache/shiro/authc/credential/PasswordService.html#passwordsMatch(java.lang.Object,
 java.lang.String)"><code>passwordsMatch(plaintext,string)</code></a> method
- sufficient if <a 
href="../../../../../org/apache/shiro/authc/credential/PasswordService.html#encryptPassword(java.lang.Object)"><code>encrypting
 passwords as Strings</code></a>.
- <h3>Usage</h3>
- The <code>submittedPlaintext</code> argument type can be any 'byte backed' 
<code>Object</code> - almost always either a
- String or character array representing passwords (character arrays are often 
a safer way to represent passwords
- as they can be cleared/nulled-out after use.  Any argument type supported by
- <code>ByteSource.Util#isCompatible(Object)</code> is valid.</div>
-<dl><dt><span class="strong">Parameters:</span></dt><dd><code>plaintext</code> 
- a raw/plaintext password submitted by an end 
user/Subject.</dd><dd><code>savedPasswordHash</code> - the previously hashed 
password known to be associated with an account.
-                           This value is expected to have been previously 
generated from the
-                           <a 
href="../../../../../org/apache/shiro/authc/credential/HashingPasswordService.html#hashPassword(java.lang.Object)"><code>hashPassword</code></a>
 method (typically
-                           when the account is created or the account's 
password is reset).</dd>
-<dt><span class="strong">Returns:</span></dt><dd><code>true</code> if the 
<code>plaintext</code> password matches the existing 
<code>savedPasswordHash</code>,
-         <code>false</code> otherwise.</dd></dl>
-</li>
-</ul>
-</li>
-</ul>
-</li>
-</ul>
-</div>
-</div>
-<!-- ========= END OF CLASS DATA ========= -->
-<!-- ======= START OF BOTTOM NAVBAR ====== -->
-<div class="bottomNav"><a name="navbar_bottom">
-<!--   -->
-</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a 
name="navbar_bottom_firstrow">
-<!--   -->
-</a>
-<ul class="navList" title="Navigation">
-<li><a href="../../../../../overview-summary.html">Overview</a></li>
-<li><a href="package-summary.html">Package</a></li>
-<li class="navBarCell1Rev">Class</li>
-<li><a href="class-use/HashingPasswordService.html">Use</a></li>
-<li><a href="package-tree.html">Tree</a></li>
-<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
-<li><a href="../../../../../index-all.html">Index</a></li>
-<li><a href="../../../../../help-doc.html">Help</a></li>
-</ul>
-</div>
-<div class="subNav">
-<ul class="navList">
-<li><a 
href="../../../../../org/apache/shiro/authc/credential/HashedCredentialsMatcher.html"
 title="class in org.apache.shiro.authc.credential"><span class="strong">Prev 
Class</span></a></li>
-<li><a 
href="../../../../../org/apache/shiro/authc/credential/Md2CredentialsMatcher.html"
 title="class in org.apache.shiro.authc.credential"><span class="strong">Next 
Class</span></a></li>
-</ul>
-<ul class="navList">
-<li><a 
href="../../../../../index.html?org/apache/shiro/authc/credential/HashingPasswordService.html"
 target="_top">Frames</a></li>
-<li><a href="HashingPasswordService.html" target="_top">No Frames</a></li>
-</ul>
-<ul class="navList" id="allclasses_navbar_bottom">
-<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
-</ul>
-<div>
-<script type="text/javascript"><!--
-  allClassesLink = document.getElementById("allclasses_navbar_bottom");
-  if(window==top) {
-    allClassesLink.style.display = "block";
-  }
-  else {
-    allClassesLink.style.display = "none";
-  }
-  //-->
-</script>
-</div>
-<div>
-<ul class="subNavList">
-<li>Summary:&nbsp;</li>
-<li>Nested&nbsp;|&nbsp;</li>
-<li>Field&nbsp;|&nbsp;</li>
-<li>Constr&nbsp;|&nbsp;</li>
-<li><a href="#method_summary">Method</a></li>
-</ul>
-<ul class="subNavList">
-<li>Detail:&nbsp;</li>
-<li>Field&nbsp;|&nbsp;</li>
-<li>Constr&nbsp;|&nbsp;</li>
-<li><a href="#method_detail">Method</a></li>
-</ul>
-</div>
-<a name="skip-navbar_bottom">
-<!--   -->
-</a></div>
-<!-- ======== END OF BOTTOM NAVBAR ======= -->
-<p class="legalCopy"><small>Copyright &#169; 2004-2013 <a 
href="http://www.apache.org/";>The Apache Software Foundation</a>. All Rights 
Reserved.</small></p>
-</body>
-</html>

Reply via email to