| Server IP : 178.105.222.151 / Your IP : 216.73.216.38 Web Server : nginx/1.28.3 System : Linux MNK 7.0.0-15-generic #15-Ubuntu SMP PREEMPT_DYNAMIC Wed Apr 22 16:06:43 UTC 2026 x86_64 User : www-data ( 33) PHP Version : 8.5.4 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : OFF Directory : /proc/self/root/usr/share/doc/python3-passlib/html/ |
Upload File : |
<!DOCTYPE html>
<html lang="en" data-content_root="./">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Table Of Contents — Passlib vlatest Documentation</title>
<link rel="stylesheet" type="text/css" href="_static/pygments.css?v=fa44fd50" />
<link rel="stylesheet" type="text/css" href="_static/classic.css?v=2bf1fcf8" />
<script src="_static/documentation_options.js?v=c6e86fd7"></script>
<script src="_static/doctools.js?v=9bcbadda"></script>
<script src="_static/sphinx_highlight.js?v=dc90522c"></script>
<link rel="icon" href="_static/logo.ico"/>
<link rel="index" title="Index" href="genindex.html" />
<link rel="search" title="Search" href="search.html" />
<link rel="copyright" title="Copyright" href="copyright.html" />
<link rel="next" title="Passlib latest documentation" href="index.html" />
</head><body>
<div class="related" role="navigation" aria-label="Related">
<h3>Navigation</h3>
<ul>
<li class="right" style="margin-right: 10px">
<a href="genindex.html" title="General Index"
accesskey="I">index</a></li>
<li class="right" >
<a href="py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li class="right" >
<a href="index.html" title="Passlib latest documentation"
accesskey="N">next</a> |</li>
<li class="nav-item nav-item-0"><a href="#">Passlib latest Documentation</a> »</li>
<li class="nav-item nav-item-this"><a href="">Table Of Contents</a></li>
</ul>
</div>
<div class="document">
<div class="documentwrapper">
<div class="bodywrapper">
<div class="body" role="main">
<section id="table-of-contents">
<h1>Table Of Contents<a class="headerlink" href="#table-of-contents" title="Link to this heading">¶</a></h1>
<div class="toctree-wrapper compound">
<ul>
<li class="toctree-l1"><a class="reference internal" href="index.html">Introduction</a><ul>
<li class="toctree-l2"><a class="reference internal" href="index.html#welcome">Welcome</a></li>
<li class="toctree-l2"><a class="reference internal" href="index.html#getting-started">Getting Started</a></li>
<li class="toctree-l2"><a class="reference internal" href="index.html#online-resources">Online Resources</a></li>
<li class="toctree-l2"><a class="reference internal" href="index.html#hosting">Hosting</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="narr/index.html">Walkthrough & Tutorials</a><ul>
<li class="toctree-l2"><a class="reference internal" href="install.html">Installation</a><ul>
<li class="toctree-l3"><a class="reference internal" href="install.html#supported-platforms">Supported Platforms</a></li>
<li class="toctree-l3"><a class="reference internal" href="install.html#optional-libraries">Optional Libraries</a></li>
<li class="toctree-l3"><a class="reference internal" href="install.html#installation-instructions">Installation Instructions</a></li>
<li class="toctree-l3"><a class="reference internal" href="install.html#testing">Testing</a></li>
<li class="toctree-l3"><a class="reference internal" href="install.html#building-the-documentation">Building the Documentation</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="narr/overview.html">Library Overview</a><ul>
<li class="toctree-l3"><a class="reference internal" href="narr/overview.html#password-hashes">Password Hashes</a></li>
<li class="toctree-l3"><a class="reference internal" href="narr/overview.html#password-contexts">Password Contexts</a></li>
<li class="toctree-l3"><a class="reference internal" href="narr/overview.html#two-factor-authentication">Two-Factor Authentication</a></li>
<li class="toctree-l3"><a class="reference internal" href="narr/overview.html#application-helpers">Application Helpers</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="narr/quickstart.html">New Application Quickstart Guide</a><ul>
<li class="toctree-l3"><a class="reference internal" href="narr/quickstart.html#choosing-a-hash">Choosing a Hash</a><ul>
<li class="toctree-l4"><a class="reference internal" href="narr/quickstart.html#the-options">The Options</a></li>
<li class="toctree-l4"><a class="reference internal" href="narr/quickstart.html#detailed-comparison-of-choices">Detailed Comparison of Choices</a></li>
<li class="toctree-l4"><a class="reference internal" href="narr/quickstart.html#making-a-decision">Making a Decision</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="narr/quickstart.html#creating-and-using-a-cryptcontext">Creating and Using a CryptContext</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="narr/hash-tutorial.html"><code class="xref py py-class docutils literal notranslate"><span class="pre">PasswordHash</span></code> Tutorial</a><ul>
<li class="toctree-l3"><a class="reference internal" href="narr/hash-tutorial.html#overview">Overview</a></li>
<li class="toctree-l3"><a class="reference internal" href="narr/hash-tutorial.html#hashing-verifying">Hashing & Verifying</a><ul>
<li class="toctree-l4"><a class="reference internal" href="narr/hash-tutorial.html#hashing">Hashing</a></li>
<li class="toctree-l4"><a class="reference internal" href="narr/hash-tutorial.html#verifying">Verifying</a></li>
<li class="toctree-l4"><a class="reference internal" href="narr/hash-tutorial.html#unicode-non-ascii-characters">Unicode & non-ASCII Characters</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="narr/hash-tutorial.html#customizing-the-configuration">Customizing the Configuration</a><ul>
<li class="toctree-l4"><a class="reference internal" href="narr/hash-tutorial.html#the-using-method">The using() Method</a></li>
<li class="toctree-l4"><a class="reference internal" href="narr/hash-tutorial.html#usage-example">Usage Example</a></li>
<li class="toctree-l4"><a class="reference internal" href="narr/hash-tutorial.html#other-keywords">Other Keywords</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="narr/hash-tutorial.html#context-keywords">Context Keywords</a></li>
<li class="toctree-l3"><a class="reference internal" href="narr/hash-tutorial.html#identifying-hashes">Identifying Hashes</a></li>
<li class="toctree-l3"><a class="reference internal" href="narr/hash-tutorial.html#choosing-the-right-rounds-value">Choosing the right rounds value</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="narr/context-tutorial.html"><code class="xref py py-class docutils literal notranslate"><span class="pre">CryptContext</span></code> Tutorial</a><ul>
<li class="toctree-l3"><a class="reference internal" href="narr/context-tutorial.html#overview">Overview</a></li>
<li class="toctree-l3"><a class="reference internal" href="narr/context-tutorial.html#walkthrough-outline">Walkthrough Outline</a></li>
<li class="toctree-l3"><a class="reference internal" href="narr/context-tutorial.html#basic-usage">Basic Usage</a></li>
<li class="toctree-l3"><a class="reference internal" href="narr/context-tutorial.html#using-default-settings">Using Default Settings</a></li>
<li class="toctree-l3"><a class="reference internal" href="narr/context-tutorial.html#loading-saving-a-cryptcontext">Loading & Saving a CryptContext</a></li>
<li class="toctree-l3"><a class="reference internal" href="narr/context-tutorial.html#deprecation-hash-migration">Deprecation & Hash Migration</a><ul>
<li class="toctree-l4"><a class="reference internal" href="narr/context-tutorial.html#deprecating-algorithms">Deprecating Algorithms</a></li>
<li class="toctree-l4"><a class="reference internal" href="narr/context-tutorial.html#integrating-hash-migration">Integrating Hash Migration</a></li>
<li class="toctree-l4"><a class="reference internal" href="narr/context-tutorial.html#settings-rounds-limitations">Settings Rounds Limitations</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="narr/context-tutorial.html#undocumented-features">Undocumented Features</a></li>
<li class="toctree-l3"><a class="reference internal" href="narr/context-tutorial.html#full-integration-example">Full Integration Example</a><ul>
<li class="toctree-l4"><a class="reference internal" href="narr/context-tutorial.html#policy-configuration-file">Policy Configuration File</a></li>
<li class="toctree-l4"><a class="reference internal" href="narr/context-tutorial.html#initializing-the-cryptcontext">Initializing the CryptContext</a></li>
<li class="toctree-l4"><a class="reference internal" href="narr/context-tutorial.html#encrypting-new-passwords">Encrypting New Passwords</a></li>
<li class="toctree-l4"><a class="reference internal" href="narr/context-tutorial.html#verifying-migrating-existing-passwords">Verifying & Migrating Existing Passwords</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="narr/totp-tutorial.html"><code class="xref py py-class docutils literal notranslate"><span class="pre">TOTP</span></code> Tutorial</a><ul>
<li class="toctree-l3"><a class="reference internal" href="narr/totp-tutorial.html#overview">Overview</a></li>
<li class="toctree-l3"><a class="reference internal" href="narr/totp-tutorial.html#walkthrough">Walkthrough</a><ul>
<li class="toctree-l4"><a class="reference internal" href="narr/totp-tutorial.html#generate-an-application-secret">1. Generate an Application Secret</a></li>
<li class="toctree-l4"><a class="reference internal" href="narr/totp-tutorial.html#totp-factory-initialization">2. TOTP Factory Initialization</a></li>
<li class="toctree-l4"><a class="reference internal" href="narr/totp-tutorial.html#rate-limiting-cache-initialization">3. Rate-Limiting & Cache Initialization</a></li>
<li class="toctree-l4"><a class="reference internal" href="narr/totp-tutorial.html#setting-up-totp-for-a-user">4. Setting up TOTP for a User</a></li>
<li class="toctree-l4"><a class="reference internal" href="narr/totp-tutorial.html#storing-the-totp-object">5. Storing the TOTP object</a></li>
<li class="toctree-l4"><a class="reference internal" href="narr/totp-tutorial.html#verifying-a-token">6. Verifying a Token</a></li>
<li class="toctree-l4"><a class="reference internal" href="narr/totp-tutorial.html#reserializing-existing-objects">7. Reserializing Existing Objects</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="narr/totp-tutorial.html#creating-totp-instances">Creating TOTP Instances</a><ul>
<li class="toctree-l4"><a class="reference internal" href="narr/totp-tutorial.html#direct-creation">Direct Creation</a></li>
<li class="toctree-l4"><a class="reference internal" href="narr/totp-tutorial.html#using-a-factory">Using a Factory</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="narr/totp-tutorial.html#configuring-clients">Configuring Clients</a><ul>
<li class="toctree-l4"><a class="reference internal" href="narr/totp-tutorial.html#rendering-uris">Rendering URIs</a></li>
<li class="toctree-l4"><a class="reference internal" href="narr/totp-tutorial.html#rendering-qr-codes">Rendering QR Codes</a></li>
<li class="toctree-l4"><a class="reference internal" href="narr/totp-tutorial.html#parsing-uris">Parsing URIs</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="narr/totp-tutorial.html#storing-totp-instances">Storing TOTP instances</a><ul>
<li class="toctree-l4"><a class="reference internal" href="narr/totp-tutorial.html#json-serialization">JSON Serialization</a></li>
<li class="toctree-l4"><a class="reference internal" href="narr/totp-tutorial.html#application-secrets">Application Secrets</a></li>
<li class="toctree-l4"><a class="reference internal" href="narr/totp-tutorial.html#encrypting-keys">Encrypting Keys</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="narr/totp-tutorial.html#generating-tokens-client-side-only">Generating Tokens (Client-Side Only)</a></li>
<li class="toctree-l3"><a class="reference internal" href="narr/totp-tutorial.html#verifying-tokens">Verifying Tokens</a><ul>
<li class="toctree-l4"><a class="reference internal" href="narr/totp-tutorial.html#match-verify">Match & Verify</a></li>
<li class="toctree-l4"><a class="reference internal" href="narr/totp-tutorial.html#preventing-token-reuse">Preventing Token Reuse</a></li>
<li class="toctree-l4"><a class="reference internal" href="narr/totp-tutorial.html#why-rate-limiting-is-critical">Why Rate-Limiting is Critical</a></li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="lib/index.html">API Reference</a><ul>
<li class="toctree-l2"><a class="reference internal" href="lib/passlib.apache.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">passlib.apache</span></code> - Apache Password Files</a><ul>
<li class="toctree-l3"><a class="reference internal" href="lib/passlib.apache.html#htpasswd-files">Htpasswd Files</a><ul>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.apache.html#passlib.apache.HtpasswdFile"><code class="docutils literal notranslate"><span class="pre">HtpasswdFile</span></code></a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="lib/passlib.apache.html#htdigest-files">Htdigest Files</a><ul>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.apache.html#passlib.apache.HtdigestFile"><code class="docutils literal notranslate"><span class="pre">HtdigestFile</span></code></a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="lib/passlib.apps.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">passlib.apps</span></code> - Helpers for various applications</a><ul>
<li class="toctree-l3"><a class="reference internal" href="lib/passlib.apps.html#usage-example">Usage Example</a></li>
<li class="toctree-l3"><a class="reference internal" href="lib/passlib.apps.html#django">Django</a><ul>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.apps.html#passlib.apps.django10_context"><code class="docutils literal notranslate"><span class="pre">django10_context</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.apps.html#passlib.apps.django14_context"><code class="docutils literal notranslate"><span class="pre">django14_context</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.apps.html#passlib.apps.django16_context"><code class="docutils literal notranslate"><span class="pre">django16_context</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.apps.html#passlib.apps.django_context"><code class="docutils literal notranslate"><span class="pre">django_context</span></code></a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="lib/passlib.apps.html#ldap">LDAP</a><ul>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.apps.html#passlib.apps.ldap_context"><code class="docutils literal notranslate"><span class="pre">ldap_context</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.apps.html#passlib.apps.ldap_nocrypt_context"><code class="docutils literal notranslate"><span class="pre">ldap_nocrypt_context</span></code></a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="lib/passlib.apps.html#mysql">MySQL</a><ul>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.apps.html#passlib.apps.mysql_context"><code class="docutils literal notranslate"><span class="pre">mysql_context</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.apps.html#passlib.apps.mysql3_context"><code class="docutils literal notranslate"><span class="pre">mysql3_context</span></code></a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="lib/passlib.apps.html#phpass">PHPass</a><ul>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.apps.html#passlib.apps.phpass_context"><code class="docutils literal notranslate"><span class="pre">phpass_context</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.apps.html#passlib.apps.phpbb3_context"><code class="docutils literal notranslate"><span class="pre">phpbb3_context</span></code></a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="lib/passlib.apps.html#postgresql">PostgreSQL</a><ul>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.apps.html#passlib.apps.postgres_context"><code class="docutils literal notranslate"><span class="pre">postgres_context</span></code></a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="lib/passlib.apps.html#roundup">Roundup</a><ul>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.apps.html#passlib.apps.roundup10_context"><code class="docutils literal notranslate"><span class="pre">roundup10_context</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.apps.html#passlib.apps.roundup15_context"><code class="docutils literal notranslate"><span class="pre">roundup15_context</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.apps.html#passlib.apps.roundup_context"><code class="docutils literal notranslate"><span class="pre">roundup_context</span></code></a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="lib/passlib.apps.html#custom-applications">Custom Applications</a><ul>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.apps.html#passlib.apps.custom_app_context"><code class="docutils literal notranslate"><span class="pre">custom_app_context</span></code></a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="lib/passlib.context.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">passlib.context</span></code> - CryptContext Hash Manager</a><ul>
<li class="toctree-l3"><a class="reference internal" href="lib/passlib.context.html#the-cryptcontext-class">The CryptContext Class</a><ul>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.context.html#passlib.context.CryptContext"><code class="docutils literal notranslate"><span class="pre">CryptContext</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.context.html#constructor-keywords">Constructor Keywords</a></li>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.context.html#primary-methods">Primary Methods</a></li>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.context.html#hash-migration">Hash Migration</a></li>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.context.html#disabled-hash-managment">Disabled Hash Managment</a></li>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.context.html#alternate-constructors">Alternate Constructors</a></li>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.context.html#changing-the-configuration">Changing the Configuration</a></li>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.context.html#examining-the-configuration">Examining the Configuration</a></li>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.context.html#saving-the-configuration">Saving the Configuration</a></li>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.context.html#configuration-errors">Configuration Errors</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="lib/passlib.context.html#other-helpers">Other Helpers</a><ul>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.context.html#passlib.context.LazyCryptContext"><code class="docutils literal notranslate"><span class="pre">LazyCryptContext</span></code></a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="lib/passlib.crypto.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">passlib.crypto</span></code> - Cryptographic Helper Functions</a><ul>
<li class="toctree-l3"><a class="reference internal" href="lib/passlib.crypto.digest.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">passlib.crypto.digest</span></code> - Hash & Related Helpers</a><ul>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.crypto.digest.html#hash-functions">Hash Functions</a></li>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.crypto.digest.html#pkcs-5-key-derivation-functions">PKCS#5 Key Derivation Functions</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="lib/passlib.crypto.des.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">passlib.crypto.des</span></code> - DES routines</a><ul>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.crypto.des.html#passlib.crypto.des.expand_des_key"><code class="docutils literal notranslate"><span class="pre">expand_des_key()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.crypto.des.html#passlib.crypto.des.des_encrypt_block"><code class="docutils literal notranslate"><span class="pre">des_encrypt_block()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.crypto.des.html#passlib.crypto.des.des_encrypt_int_block"><code class="docutils literal notranslate"><span class="pre">des_encrypt_int_block()</span></code></a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="lib/passlib.exc.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">passlib.exc</span></code> - Exceptions and warnings</a><ul>
<li class="toctree-l3"><a class="reference internal" href="lib/passlib.exc.html#exceptions">Exceptions</a><ul>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.exc.html#passlib.exc.MissingBackendError"><code class="docutils literal notranslate"><span class="pre">MissingBackendError</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.exc.html#passlib.exc.InternalBackendError"><code class="docutils literal notranslate"><span class="pre">InternalBackendError</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.exc.html#passlib.exc.PasswordValueError"><code class="docutils literal notranslate"><span class="pre">PasswordValueError</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.exc.html#passlib.exc.PasswordSizeError"><code class="docutils literal notranslate"><span class="pre">PasswordSizeError</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.exc.html#passlib.exc.PasswordTruncateError"><code class="docutils literal notranslate"><span class="pre">PasswordTruncateError</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.exc.html#passlib.exc.PasslibSecurityError"><code class="docutils literal notranslate"><span class="pre">PasslibSecurityError</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.exc.html#passlib.exc.UnknownHashError"><code class="docutils literal notranslate"><span class="pre">UnknownHashError</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.exc.html#totp-exceptions">TOTP Exceptions</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="lib/passlib.exc.html#warnings">Warnings</a><ul>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.exc.html#passlib.exc.PasslibWarning"><code class="docutils literal notranslate"><span class="pre">PasslibWarning</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.exc.html#minor-warnings">Minor Warnings</a></li>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.exc.html#critical-warnings">Critical Warnings</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="lib/passlib.ext.django.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">passlib.ext.django</span></code> - Django Password Hashing Plugin</a><ul>
<li class="toctree-l3"><a class="reference internal" href="lib/passlib.ext.django.html#installation">Installation</a></li>
<li class="toctree-l3"><a class="reference internal" href="lib/passlib.ext.django.html#configuration">Configuration</a></li>
<li class="toctree-l3"><a class="reference internal" href="lib/passlib.ext.django.html#module-passlib.ext.django.models">Module Contents</a><ul>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.ext.django.html#passlib.ext.django.models.password_context"><code class="docutils literal notranslate"><span class="pre">password_context</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.ext.django.html#passlib.ext.django.models.context_changed"><code class="docutils literal notranslate"><span class="pre">context_changed()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.ext.django.html#passlib.ext.django.utils.get_preset_config"><code class="docutils literal notranslate"><span class="pre">get_preset_config()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.ext.django.html#passlib.ext.django.utils.PASSLIB_DEFAULT"><code class="docutils literal notranslate"><span class="pre">PASSLIB_DEFAULT</span></code></a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="lib/passlib.hash.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">passlib.hash</span></code> - Password Hashing Schemes</a><ul>
<li class="toctree-l3"><a class="reference internal" href="lib/passlib.hash.html#overview">Overview</a></li>
<li class="toctree-l3"><a class="reference internal" href="lib/passlib.hash.html#unix-hashes">Unix Hashes</a><ul>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.hash.html#active-unix-hashes">Active Unix Hashes</a></li>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.hash.html#deprecated-unix-hashes">Deprecated Unix Hashes</a></li>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.hash.html#archaic-unix-hashes">Archaic Unix Hashes</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="lib/passlib.hash.html#other-modular-crypt-hashes">Other “Modular Crypt” Hashes</a><ul>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.hash.html#active-hashes">Active Hashes</a></li>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.hash.html#deprecated-hashes">Deprecated Hashes</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="lib/passlib.hash.html#ldap-rfc2307-hashes">LDAP / RFC2307 Hashes</a><ul>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.hash.html#standard-ldap-schemes">Standard LDAP Schemes</a></li>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.hash.html#non-standard-ldap-schemes">Non-Standard LDAP Schemes</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="lib/passlib.hash.html#sql-database-hashes">SQL Database Hashes</a><ul>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.hash.mssql2000.html"><code class="xref py py-class docutils literal notranslate"><span class="pre">passlib.hash.mssql2000</span></code> - MS SQL 2000 password hash</a></li>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.hash.mssql2005.html"><code class="xref py py-class docutils literal notranslate"><span class="pre">passlib.hash.mssql2005</span></code> - MS SQL 2005 password hash</a></li>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.hash.mysql323.html"><code class="xref py py-class docutils literal notranslate"><span class="pre">passlib.hash.mysql323</span></code> - MySQL 3.2.3 password hash</a></li>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.hash.mysql41.html"><code class="xref py py-class docutils literal notranslate"><span class="pre">passlib.hash.mysql41</span></code> - MySQL 4.1 password hash</a></li>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.hash.postgres_md5.html"><code class="xref py py-class docutils literal notranslate"><span class="pre">passlib.hash.postgres_md5</span></code> - PostgreSQL MD5 password hash</a></li>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.hash.oracle10.html"><code class="xref py py-class docutils literal notranslate"><span class="pre">passlib.hash.oracle10</span></code> - Oracle 10g password hash</a></li>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.hash.oracle11.html"><code class="xref py py-class docutils literal notranslate"><span class="pre">passlib.hash.oracle11</span></code> - Oracle 11g password hash</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="lib/passlib.hash.html#ms-windows-hashes">MS Windows Hashes</a><ul>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.hash.lmhash.html"><code class="xref py py-class docutils literal notranslate"><span class="pre">passlib.hash.lmhash</span></code> - LanManager Hash</a></li>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.hash.nthash.html"><code class="xref py py-class docutils literal notranslate"><span class="pre">passlib.hash.nthash</span></code> - Windows’ NT-HASH</a></li>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.hash.msdcc.html"><code class="xref py py-class docutils literal notranslate"><span class="pre">passlib.hash.msdcc</span></code> - Windows’ Domain Cached Credentials</a></li>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.hash.msdcc2.html"><code class="xref py py-class docutils literal notranslate"><span class="pre">passlib.hash.msdcc2</span></code> - Windows’ Domain Cached Credentials v2</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="lib/passlib.hash.html#cisco-hashes">Cisco Hashes</a><ul>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.hash.cisco_type7.html"><code class="xref py py-class docutils literal notranslate"><span class="pre">passlib.hash.cisco_type7</span></code> - Cisco “Type 7” hash</a></li>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.hash.cisco_pix.html"><code class="xref py py-class docutils literal notranslate"><span class="pre">passlib.hash.cisco_pix</span></code> - Cisco PIX MD5 hash</a></li>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.hash.cisco_asa.html"><code class="xref py py-class docutils literal notranslate"><span class="pre">passlib.hash.cisco_asa</span></code> - Cisco ASA MD5 hash</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="lib/passlib.hash.html#other-hashes">Other Hashes</a><ul>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.hash.django_std.html"><code class="samp docutils literal notranslate"><span class="pre">passlib.hash.django_</span><em><span class="pre">digest</span></em></code> - Django-specific Hashes</a></li>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.hash.grub_pbkdf2_sha512.html"><code class="xref py py-class docutils literal notranslate"><span class="pre">passlib.hash.grub_pbkdf2_sha512</span></code> - Grub’s PBKDF2 Hash</a></li>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.hash.hex_digests.html"><code class="samp docutils literal notranslate"><span class="pre">passlib.hash.hex_</span><em><span class="pre">digest</span></em></code> - Generic Hexadecimal Digests</a></li>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.hash.plaintext.html"><code class="xref py py-class docutils literal notranslate"><span class="pre">passlib.hash.plaintext</span></code> - Plaintext</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="lib/passlib.hosts.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">passlib.hosts</span></code> - OS Password Handling</a><ul>
<li class="toctree-l3"><a class="reference internal" href="lib/passlib.hosts.html#usage-example">Usage Example</a></li>
<li class="toctree-l3"><a class="reference internal" href="lib/passlib.hosts.html#unix-password-hashes">Unix Password Hashes</a><ul>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.hosts.html#predefined-contexts">Predefined Contexts</a></li>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.hosts.html#current-host-os">Current Host OS</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="lib/passlib.ifc.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">passlib.ifc</span></code> – Password Hash Interface</a><ul>
<li class="toctree-l3"><a class="reference internal" href="lib/passlib.ifc.html#passwordhash-api">PasswordHash API</a></li>
<li class="toctree-l3"><a class="reference internal" href="lib/passlib.ifc.html#base-abstract-class">Base Abstract Class</a><ul>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.ifc.html#passlib.ifc.PasswordHash"><code class="docutils literal notranslate"><span class="pre">PasswordHash</span></code></a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="lib/passlib.ifc.html#hashing-verification-methods">Hashing & Verification Methods</a><ul>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.ifc.html#passlib.ifc.PasswordHash.hash"><code class="docutils literal notranslate"><span class="pre">PasswordHash.hash()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.ifc.html#passlib.ifc.PasswordHash.encrypt"><code class="docutils literal notranslate"><span class="pre">PasswordHash.encrypt()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.ifc.html#passlib.ifc.PasswordHash.verify"><code class="docutils literal notranslate"><span class="pre">PasswordHash.verify()</span></code></a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="lib/passlib.ifc.html#crypt-methods">Crypt Methods</a><ul>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.ifc.html#passlib.ifc.PasswordHash.genconfig"><code class="docutils literal notranslate"><span class="pre">PasswordHash.genconfig()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.ifc.html#passlib.ifc.PasswordHash.genhash"><code class="docutils literal notranslate"><span class="pre">PasswordHash.genhash()</span></code></a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="lib/passlib.ifc.html#factory-creation">Factory Creation</a><ul>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.ifc.html#passlib.ifc.PasswordHash.using"><code class="docutils literal notranslate"><span class="pre">PasswordHash.using()</span></code></a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="lib/passlib.ifc.html#hash-inspection-methods">Hash Inspection Methods</a><ul>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.ifc.html#passlib.ifc.PasswordHash.identify"><code class="docutils literal notranslate"><span class="pre">PasswordHash.identify()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.ifc.html#passlib.ifc.PasswordHash.needs_update"><code class="docutils literal notranslate"><span class="pre">PasswordHash.needs_update()</span></code></a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="lib/passlib.ifc.html#general-informational-attributes">General Informational Attributes</a><ul>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.ifc.html#passlib.ifc.PasswordHash.name"><code class="docutils literal notranslate"><span class="pre">PasswordHash.name</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.ifc.html#passlib.ifc.PasswordHash.setting_kwds"><code class="docutils literal notranslate"><span class="pre">PasswordHash.setting_kwds</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.ifc.html#passlib.ifc.PasswordHash.context_kwds"><code class="docutils literal notranslate"><span class="pre">PasswordHash.context_kwds</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.ifc.html#passlib.ifc.truncate_size"><code class="docutils literal notranslate"><span class="pre">truncate_size</span></code></a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="lib/passlib.ifc.html#salt-information-attributes">Salt Information Attributes</a><ul>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.ifc.html#passlib.ifc.PasswordHash.max_salt_size"><code class="docutils literal notranslate"><span class="pre">PasswordHash.max_salt_size</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.ifc.html#passlib.ifc.PasswordHash.min_salt_size"><code class="docutils literal notranslate"><span class="pre">PasswordHash.min_salt_size</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.ifc.html#passlib.ifc.PasswordHash.default_salt_size"><code class="docutils literal notranslate"><span class="pre">PasswordHash.default_salt_size</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.ifc.html#passlib.ifc.PasswordHash.salt_chars"><code class="docutils literal notranslate"><span class="pre">PasswordHash.salt_chars</span></code></a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="lib/passlib.ifc.html#rounds-information-attributes">Rounds Information Attributes</a><ul>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.ifc.html#passlib.ifc.PasswordHash.max_rounds"><code class="docutils literal notranslate"><span class="pre">PasswordHash.max_rounds</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.ifc.html#passlib.ifc.PasswordHash.min_rounds"><code class="docutils literal notranslate"><span class="pre">PasswordHash.min_rounds</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.ifc.html#passlib.ifc.PasswordHash.default_rounds"><code class="docutils literal notranslate"><span class="pre">PasswordHash.default_rounds</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.ifc.html#passlib.ifc.PasswordHash.rounds_cost"><code class="docutils literal notranslate"><span class="pre">PasswordHash.rounds_cost</span></code></a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="lib/passlib.pwd.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">passlib.pwd</span></code> – Password generation helpers</a><ul>
<li class="toctree-l3"><a class="reference internal" href="lib/passlib.pwd.html#password-generation">Password Generation</a><ul>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.pwd.html#passlib.pwd.genword"><code class="docutils literal notranslate"><span class="pre">genword()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.pwd.html#passlib.pwd.genphrase"><code class="docutils literal notranslate"><span class="pre">genphrase()</span></code></a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="lib/passlib.pwd.html#predefined-symbol-sets">Predefined Symbol Sets</a></li>
<li class="toctree-l3"><a class="reference internal" href="lib/passlib.pwd.html#password-strength-estimation">Password Strength Estimation</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="lib/passlib.registry.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">passlib.registry</span></code> - Password Handler Registry</a><ul>
<li class="toctree-l3"><a class="reference internal" href="lib/passlib.registry.html#interface">Interface</a><ul>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.registry.html#passlib.registry.get_crypt_handler"><code class="docutils literal notranslate"><span class="pre">get_crypt_handler()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.registry.html#passlib.registry.list_crypt_handlers"><code class="docutils literal notranslate"><span class="pre">list_crypt_handlers()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.registry.html#passlib.registry.register_crypt_handler_path"><code class="docutils literal notranslate"><span class="pre">register_crypt_handler_path()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.registry.html#passlib.registry.register_crypt_handler"><code class="docutils literal notranslate"><span class="pre">register_crypt_handler()</span></code></a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="lib/passlib.registry.html#usage">Usage</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="lib/passlib.totp.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">passlib.totp</span></code> – TOTP / Two Factor Authentication</a><ul>
<li class="toctree-l3"><a class="reference internal" href="lib/passlib.totp.html#overview">Overview</a></li>
<li class="toctree-l3"><a class="reference internal" href="lib/passlib.totp.html#totp-class">TOTP Class</a><ul>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.totp.html#passlib.totp.TOTP"><code class="docutils literal notranslate"><span class="pre">TOTP</span></code></a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="lib/passlib.totp.html#alternate-constructors">Alternate Constructors</a><ul>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.totp.html#passlib.totp.TOTP.new"><code class="docutils literal notranslate"><span class="pre">TOTP.new()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.totp.html#passlib.totp.TOTP.from_source"><code class="docutils literal notranslate"><span class="pre">TOTP.from_source()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.totp.html#passlib.totp.TOTP.from_uri"><code class="docutils literal notranslate"><span class="pre">TOTP.from_uri()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.totp.html#passlib.totp.TOTP.from_json"><code class="docutils literal notranslate"><span class="pre">TOTP.from_json()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.totp.html#passlib.totp.TOTP.from_dict"><code class="docutils literal notranslate"><span class="pre">TOTP.from_dict()</span></code></a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="lib/passlib.totp.html#factory-creation">Factory Creation</a><ul>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.totp.html#passlib.totp.TOTP.using"><code class="docutils literal notranslate"><span class="pre">TOTP.using()</span></code></a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="lib/passlib.totp.html#basic-attributes">Basic Attributes</a><ul>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.totp.html#passlib.totp.TOTP.key"><code class="docutils literal notranslate"><span class="pre">TOTP.key</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.totp.html#passlib.totp.TOTP.hex_key"><code class="docutils literal notranslate"><span class="pre">TOTP.hex_key</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.totp.html#passlib.totp.TOTP.base32_key"><code class="docutils literal notranslate"><span class="pre">TOTP.base32_key</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.totp.html#passlib.totp.TOTP.label"><code class="docutils literal notranslate"><span class="pre">TOTP.label</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.totp.html#passlib.totp.TOTP.issuer"><code class="docutils literal notranslate"><span class="pre">TOTP.issuer</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.totp.html#passlib.totp.TOTP.digits"><code class="docutils literal notranslate"><span class="pre">TOTP.digits</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.totp.html#passlib.totp.TOTP.alg"><code class="docutils literal notranslate"><span class="pre">TOTP.alg</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.totp.html#passlib.totp.TOTP.period"><code class="docutils literal notranslate"><span class="pre">TOTP.period</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.totp.html#passlib.totp.TOTP.changed"><code class="docutils literal notranslate"><span class="pre">TOTP.changed</span></code></a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="lib/passlib.totp.html#token-generation">Token Generation</a><ul>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.totp.html#passlib.totp.TOTP.generate"><code class="docutils literal notranslate"><span class="pre">TOTP.generate()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.totp.html#totptoken">TotpToken</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="lib/passlib.totp.html#token-matching-verification">Token Matching / Verification</a><ul>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.totp.html#passlib.totp.TOTP.match"><code class="docutils literal notranslate"><span class="pre">TOTP.match()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.totp.html#passlib.totp.TOTP.verify"><code class="docutils literal notranslate"><span class="pre">TOTP.verify()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.totp.html#totpmatch">TotpMatch</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="lib/passlib.totp.html#client-configuration-methods">Client Configuration Methods</a><ul>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.totp.html#passlib.totp.TOTP.to_uri"><code class="docutils literal notranslate"><span class="pre">TOTP.to_uri()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.totp.html#passlib.totp.TOTP.pretty_key"><code class="docutils literal notranslate"><span class="pre">TOTP.pretty_key()</span></code></a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="lib/passlib.totp.html#serialization-methods">Serialization Methods</a><ul>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.totp.html#passlib.totp.TOTP.to_json"><code class="docutils literal notranslate"><span class="pre">TOTP.to_json()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.totp.html#passlib.totp.TOTP.to_dict"><code class="docutils literal notranslate"><span class="pre">TOTP.to_dict()</span></code></a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="lib/passlib.totp.html#helper-methods">Helper Methods</a><ul>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.totp.html#passlib.totp.TOTP.normalize_token"><code class="docutils literal notranslate"><span class="pre">TOTP.normalize_token()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.totp.html#passlib.totp.TOTP.normalize_time"><code class="docutils literal notranslate"><span class="pre">TOTP.normalize_time()</span></code></a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="lib/passlib.totp.html#appwallet">AppWallet</a><ul>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.totp.html#passlib.totp.AppWallet"><code class="docutils literal notranslate"><span class="pre">AppWallet</span></code></a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="lib/passlib.totp.html#support-functions">Support Functions</a><ul>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.totp.html#passlib.totp.generate_secret"><code class="docutils literal notranslate"><span class="pre">generate_secret()</span></code></a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="lib/passlib.totp.html#deviations">Deviations</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="lib/passlib.utils.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">passlib.utils</span></code> - Helper Functions</a><ul>
<li class="toctree-l3"><a class="reference internal" href="lib/passlib.utils.html#constants">Constants</a><ul>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.utils.html#passlib.utils.unix_crypt_schemes"><code class="docutils literal notranslate"><span class="pre">unix_crypt_schemes</span></code></a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="lib/passlib.utils.html#unicode-helpers">Unicode Helpers</a><ul>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.utils.html#passlib.utils.consteq"><code class="docutils literal notranslate"><span class="pre">consteq()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.utils.html#passlib.utils.saslprep"><code class="docutils literal notranslate"><span class="pre">saslprep()</span></code></a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="lib/passlib.utils.html#bytes-helpers">Bytes Helpers</a><ul>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.utils.html#passlib.utils.xor_bytes"><code class="docutils literal notranslate"><span class="pre">xor_bytes()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.utils.html#passlib.utils.render_bytes"><code class="docutils literal notranslate"><span class="pre">render_bytes()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.utils.html#passlib.utils.int_to_bytes"><code class="docutils literal notranslate"><span class="pre">int_to_bytes()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.utils.html#passlib.utils.bytes_to_int"><code class="docutils literal notranslate"><span class="pre">bytes_to_int()</span></code></a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="lib/passlib.utils.html#encoding-helpers">Encoding Helpers</a><ul>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.utils.html#passlib.utils.is_same_codec"><code class="docutils literal notranslate"><span class="pre">is_same_codec()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.utils.html#passlib.utils.is_ascii_codec"><code class="docutils literal notranslate"><span class="pre">is_ascii_codec()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.utils.html#passlib.utils.is_ascii_safe"><code class="docutils literal notranslate"><span class="pre">is_ascii_safe()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.utils.html#passlib.utils.to_bytes"><code class="docutils literal notranslate"><span class="pre">to_bytes()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.utils.html#passlib.utils.to_unicode"><code class="docutils literal notranslate"><span class="pre">to_unicode()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.utils.html#passlib.utils.to_native_str"><code class="docutils literal notranslate"><span class="pre">to_native_str()</span></code></a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="lib/passlib.utils.html#randomness">Randomness</a><ul>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.utils.html#passlib.utils.rng"><code class="docutils literal notranslate"><span class="pre">rng</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.utils.html#passlib.utils.getrandbytes"><code class="docutils literal notranslate"><span class="pre">getrandbytes()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.utils.html#passlib.utils.getrandstr"><code class="docutils literal notranslate"><span class="pre">getrandstr()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.utils.html#passlib.utils.generate_password"><code class="docutils literal notranslate"><span class="pre">generate_password()</span></code></a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="lib/passlib.utils.html#interface-tests">Interface Tests</a><ul>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.utils.html#passlib.utils.is_crypt_handler"><code class="docutils literal notranslate"><span class="pre">is_crypt_handler()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.utils.html#passlib.utils.is_crypt_context"><code class="docutils literal notranslate"><span class="pre">is_crypt_context()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.utils.html#passlib.utils.has_rounds_info"><code class="docutils literal notranslate"><span class="pre">has_rounds_info()</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.utils.html#passlib.utils.has_salt_info"><code class="docutils literal notranslate"><span class="pre">has_salt_info()</span></code></a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="lib/passlib.utils.html#submodules">Submodules</a><ul>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.utils.handlers.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">passlib.utils.handlers</span></code> - Framework for writing password hashes</a></li>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.utils.binary.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">passlib.utils.binary</span></code> - Binary Helper Functions</a></li>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.utils.des.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">passlib.utils.des</span></code> - DES routines [deprecated]</a></li>
<li class="toctree-l4"><a class="reference internal" href="lib/passlib.utils.pbkdf2.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">passlib.utils.pbkdf2</span></code> - PBKDF2 key derivation algorithm [deprecated]</a></li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="other.html">Other Documentation</a><ul>
<li class="toctree-l2"><a class="reference internal" href="faq.html">Frequently Asked Questions</a></li>
<li class="toctree-l2"><a class="reference internal" href="modular_crypt_format.html">Modular Crypt Format</a><ul>
<li class="toctree-l3"><a class="reference internal" href="modular_crypt_format.html#overview">Overview</a></li>
<li class="toctree-l3"><a class="reference internal" href="modular_crypt_format.html#history">History</a></li>
<li class="toctree-l3"><a class="reference internal" href="modular_crypt_format.html#requirements">Requirements</a></li>
<li class="toctree-l3"><a class="reference internal" href="modular_crypt_format.html#mcf-identifiers">Identifiers & Platform Support</a><ul>
<li class="toctree-l4"><a class="reference internal" href="modular_crypt_format.html#os-defined-hashes">OS Defined Hashes</a></li>
<li class="toctree-l4"><a class="reference internal" href="modular_crypt_format.html#additional-platforms">Additional Platforms</a></li>
<li class="toctree-l4"><a class="reference internal" href="modular_crypt_format.html#application-defined-hashes">Application-Defined Hashes</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="history/index.html">Release History</a><ul>
<li class="toctree-l3"><a class="reference internal" href="history/1.8.html">1.8 Series</a><ul>
<li class="toctree-l4"><a class="reference internal" href="history/1.8.html#not-yet-released"><strong>1.8.0</strong> (NOT YET RELEASED)</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="history/1.7.html">1.7 Series</a><ul>
<li class="toctree-l4"><a class="reference internal" href="history/1.7.html#id3"><strong>1.7.4</strong> (2020-10-08)</a></li>
<li class="toctree-l4"><a class="reference internal" href="history/1.7.html#id8"><strong>1.7.3</strong> (2020-10-06)</a></li>
<li class="toctree-l4"><a class="reference internal" href="history/1.7.html#id24"><strong>1.7.2</strong> (2019-11-22)</a></li>
<li class="toctree-l4"><a class="reference internal" href="history/1.7.html#id41"><strong>1.7.1</strong> (2017-1-30)</a></li>
<li class="toctree-l4"><a class="reference internal" href="history/1.7.html#id48"><strong>1.7.0</strong> (2016-11-22)</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="history/1.6.html">1.6 Series</a><ul>
<li class="toctree-l4"><a class="reference internal" href="history/1.6.html#id1"><strong>1.6.5</strong> (2015-08-04)</a></li>
<li class="toctree-l4"><a class="reference internal" href="history/1.6.html#id6"><strong>1.6.4</strong> (2015-07-25)</a></li>
<li class="toctree-l4"><a class="reference internal" href="history/1.6.html#id15"><strong>1.6.3</strong> (2015-07-25)</a></li>
<li class="toctree-l4"><a class="reference internal" href="history/1.6.html#id16"><strong>1.6.2</strong> (2013-12-26)</a></li>
<li class="toctree-l4"><a class="reference internal" href="history/1.6.html#id24"><strong>1.6.1</strong> (2012-08-02)</a></li>
<li class="toctree-l4"><a class="reference internal" href="history/1.6.html#id31"><strong>1.6.0</strong> (2012-05-01)</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="history/1.5.html">1.5 Series</a><ul>
<li class="toctree-l4"><a class="reference internal" href="history/1.5.html#bcrypt-padding-issue"><strong>1.5.3</strong> (2011-10-08)</a></li>
<li class="toctree-l4"><a class="reference internal" href="history/1.5.html#id6"><strong>1.5.2</strong> (2011-09-19)</a></li>
<li class="toctree-l4"><a class="reference internal" href="history/1.5.html#id9"><strong>1.5.1</strong> (2011-08-17)</a></li>
<li class="toctree-l4"><a class="reference internal" href="history/1.5.html#id18"><strong>1.5.0</strong> (2011-07-11)</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="history/ancient.html">1.4 & Earlier</a><ul>
<li class="toctree-l4"><a class="reference internal" href="history/ancient.html#id1"><strong>1.4</strong> (2011-05-04)</a></li>
<li class="toctree-l4"><a class="reference internal" href="history/ancient.html#id2"><strong>1.3.1</strong> (2011-03-28)</a></li>
<li class="toctree-l4"><a class="reference internal" href="history/ancient.html#id3"><strong>1.3</strong> (2011-03-25)</a></li>
<li class="toctree-l4"><a class="reference internal" href="history/ancient.html#id4"><strong>1.2</strong> (2011-01-06)</a></li>
<li class="toctree-l4"><a class="reference internal" href="history/ancient.html#id5"><strong>1.0</strong> (2009-12-11)</a></li>
<li class="toctree-l4"><a class="reference internal" href="history/ancient.html#id6"><strong>0.5</strong> (2008-05-10)</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="copyright.html">Copyrights & Licenses</a><ul>
<li class="toctree-l3"><a class="reference internal" href="copyright.html#credits">Credits</a></li>
<li class="toctree-l3"><a class="reference internal" href="copyright.html#license-for-passlib">License for Passlib</a></li>
<li class="toctree-l3"><a class="reference internal" href="copyright.html#licenses-for-incorporated-software">Licenses for incorporated software</a><ul>
<li class="toctree-l4"><a class="reference internal" href="copyright.html#md5-crypt">MD5-Crypt</a></li>
<li class="toctree-l4"><a class="reference internal" href="copyright.html#des">DES</a></li>
<li class="toctree-l4"><a class="reference internal" href="copyright.html#jbcrypt">jBCrypt</a></li>
<li class="toctree-l4"><a class="reference internal" href="copyright.html#wordsets">Wordsets</a></li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<ul class="simple">
<li><p><a class="reference internal" href="genindex.html"><span class="std std-ref">General Index</span></a></p></li>
<li><p><a class="reference internal" href="py-modindex.html"><span class="std std-ref">Module List</span></a></p></li>
</ul>
</section>
<div class="clearer"></div>
</div>
</div>
</div>
<div class="sphinxsidebar" role="navigation" aria-label="Main">
<div class="sphinxsidebarwrapper">
<p class="logo"><a href="#">
<img class="logo" src="_static/masthead.png" alt="Logo of Passlib"/>
</a></p>
<search id="searchbox" style="display: none" role="search">
<h3 id="searchlabel">Quick search</h3>
<div class="searchformwrapper">
<form class="search" action="search.html" method="get">
<input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>
<input type="submit" value="Go" />
</form>
</div>
</search>
<script>document.getElementById('searchbox').style.display = "block"</script>
<h3><a href="#">Table of Contents</a></h3>
<ul>
<li class="toctree-l1"><a class="reference internal" href="index.html">Introduction</a></li>
<li class="toctree-l1"><a class="reference internal" href="narr/index.html">Walkthrough & Tutorials</a></li>
<li class="toctree-l1"><a class="reference internal" href="lib/index.html">API Reference</a></li>
<li class="toctree-l1"><a class="reference internal" href="other.html">Other Documentation</a></li>
</ul>
</div>
</div>
<div class="clearer"></div>
</div>
<div class="related" role="navigation" aria-label="Related">
<h3>Navigation</h3>
<ul>
<li class="right" style="margin-right: 10px">
<a href="genindex.html" title="General Index"
>index</a></li>
<li class="right" >
<a href="py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li class="right" >
<a href="index.html" title="Passlib latest documentation"
>next</a> |</li>
<li class="nav-item nav-item-0"><a href="#">Passlib latest Documentation</a> »</li>
<li class="nav-item nav-item-this"><a href="">Table Of Contents</a></li>
</ul>
</div>
<div class="footer" role="contentinfo">
© <a href="copyright.html">Copyright</a> 2008-2025, Assurance Technologies, LLC. Last Updated 2025-12-21.
Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 8.2.3.
</div>
</body>
</html>