设置使用 SHA 256 加密的 Jupyter Lab 密码

问题描述

我目前正在我的 Ubuntu 18.04 服务器上运行 Jupyter 实验室服务。我已经使用以下命令在我的实验室中设置了密码:

$ jupyter notebook --generate-config
$ jupyter notebook password

它以以下输出响应:

[NotebookPasswordApp] Wrote hashed password to /Users/you/.jupyter/jupyter_notebook_config.json

之后我在 .jupyter/jupyter_notebook_config.py 文件添加配置设置,如下所示:

c.NotebookApp.password = u'sha1:bcd259ccf...<my hashed password here>'

我想要的是获得 SHA 256 散列密码而不是 SHA 1,这纯粹是因为 SHA 256 散列的长度更大,因此提供了额外的加密级别。

我想知道是否有办法使这成为可能?目前我已经尝试了几种选择,但似乎都不起作用。

解决方法

notebook.auth 模块提供了一个名为 passwd 的函数。第二个参数是算法。您可以使用该函数获取 SHA 256 哈希密码。

"""Parameters
----------
passphrase : str
    Password to hash.  If unspecified,the user is asked to input
    and verify a password.
algorithm : str
    Hashing algorithm to use (e.g,'sha1' or any argument supported
    by :func:`hashlib.new`,or 'argon2').

Returns
-------
hashed_passphrase : str
    Hashed password,in the format 'hash_algorithm:salt:passphrase_hash'."""

from notebook.auth import passwd

my_password = "spam-and-eggs"

hashed_password = passwd(passphrase=my_password,algorithm='sha256')

print(hashed_password)

输出:sha256:128c5116bc40:94cfe1eef8703b657a7ef28af741fa05465c7a7355645a65040bd51bccc6039b