擅长:python、mysql、java
<p>Passlib在这里可能不是正确的选择。它主要涉及密码的单向散列。您可以使用生成的哈希来验证用户提供的密码是否与您的哈希匹配,但不能对哈希进行解密。(旧的Passlib版本确实有一个错误命名的<code>.encrypt()</code>方法,但是Passlib 1.7将其重命名为<code>.hash()</code>)。在</p>
<p>根据您的用例,您可能需要以下两种情况之一:</p>
<ul>
<li><a href="https://pypi.python.org/pypi/keyring" rel="nofollow noreferrer">keyring</a>是一个python接口,用于在操作系统控制的“钱包”中保存和存储密码。它可以在windows、linux等平台上跨平台工作</li>
</ul>
<p>但是,如果需要从登录的桌面会话外部触发的脚本运行密码,则使用起来可能会很尴尬。在</p>
<p>在这种情况下,您可能需要加密用于存储的凭据,并选择一个密码(在调用脚本时提供,例如从命令行提示符或env var)来解密这些凭据。在</p>
<ul>
<li><a href="https://pypi.python.org/pypi/cryptography" rel="nofollow noreferrer">cryptography</a>是执行类似操作的好选择;它提供了许多不需要(太多)加密经验的高级函数,例如它们的<a href="https://cryptography.io/en/latest/fernet/" rel="nofollow noreferrer">fernet encryption</a>助手。在</li>
</ul>