【问题标题】:Jupyter Notebook Password Hash coming out strange?Jupyter Notebook Password Hash 出来很奇怪?
【发布时间】:2021-07-22 16:05:42
【问题描述】:

我在这里遵循指南:https://jupyter-notebook.readthedocs.io/en/stable/public_server.html 生成哈希密码以复制到 jupyter_notebook_config.py。但是,每当我尝试登录实际的 Jupyter 笔记本时,密码都不起作用。

这是我正在使用的代码:

from notebook.auth import passwd
passwd()

我得到的是一个看起来像这样的哈希:'argon2:$argon2id$v=19$m=10240,t=10,p=8$xde6DK/DQXdwQw7pviv33A$QEQftsyWij4g7oQqJ54XeQ'

但是,我在示例中看到的所有密码都类似于:'sha1:67c9e60bb8b6:9ffede0825894254b2e042ea597d771089e11aed'

出了什么问题?我也应该使用密码 prehash 或 posthash 登录吗?

【问题讨论】:

  • argon2 是一种比加盐 sha更好 的密码哈希格式。背景见en.wikipedia.org/wiki/Argon2
  • ...而散列密码的全部意义在于,服务器存储了一些不能用作密码本身的东西,并且不能轻易地从中导出密码;所以你使用 pre-hash 的原始值登录。如果 post-hash 值可以用于登录,那么以散列形式存储密码的整个点都将失败。
  • 除此之外......真的,这是一个关于依赖链和比较特定版本的问题。如果notebook.auth 的一个版本支持 argon2 而另一个不支持,则您不能在仅支持旧格式的安装中安装由较新版本创建的哈希;但现在的问题根本不包含任何版本详细信息。
  • @CharlesDuffy 非常感谢您的详细回复。我相信版本控制可能是问题所在,这就是它不起作用的原因。谢谢你。我还注意到该网站在哈希之前输入了u,如下所示:c.NotebookApp.password = u'sha1:67c9e60bb8b6:9ffede0825894254b2e042ea597d771089e11aed' 你知道他们为什么放这个吗?
  • u'' 是 Python 2 版本的 Unicode 字符串,在 Python 3 中只是 ''。 (Python 2 中的 '' 在 Python 3 中是 b'')。

标签: python jupyter-notebook jupyter


【解决方案1】:

Argon2 是一种比 salted sha1 更现代且通常更强大的密码哈希算法。因此,使用当前版本的 Jupyter 是一个合理的选择。

如果您有一个 Jupyter 安装生成 argon2 密码散列,而第二个安装 拒绝接受这些散列,则以下结论是它们之间存在版本差异。

理想情况下,更新不接受密码的安装以运行较新的软件版本。如果这不是一个选项,请使用您需要兼容的相同版本生成您的密码。

【讨论】:

    猜你喜欢
    • 2022-12-18
    • 2015-03-26
    • 2023-01-29
    • 2019-07-29
    • 1970-01-01
    • 2021-07-02
    • 1970-01-01
    • 2018-09-12
    • 2019-07-07
    相关资源
    最近更新 更多