相关为什么 Linux Mint 上的 root 密码是我的用户密码?
看来我的 Mint 17.3 盒子设置了 root 密码:我在/etc/shadow
(以 开头$6$...
)看到密码哈希。我想将此密码哈希与我的(已知)用户密码进行比较。
无论出于何种原因,我不相信su -
(在链接的问题中)不使用我的密码,而不是root密码。
是否有一种简单的方法(例如在 bash 中)将已知哈希与已知密码进行比较并查看它们是否匹配?
相关为什么 Linux Mint 上的 root 密码是我的用户密码?
看来我的 Mint 17.3 盒子设置了 root 密码:我在/etc/shadow
(以 开头$6$...
)看到密码哈希。我想将此密码哈希与我的(已知)用户密码进行比较。
无论出于何种原因,我不相信su -
(在链接的问题中)不使用我的密码,而不是root密码。
是否有一种简单的方法(例如在 bash 中)将已知哈希与已知密码进行比较并查看它们是否匹配?
找到 中使用的盐
/etc/shadow
,是第二个和第三个之间的字符$
,通常会有八个。使用
mkpasswd -m sha-512 -S <salt>
,然后输入您认为在询问时应该使用的密码。它将输出带有$6$<salt>$
前缀的哈希。最后,您需要
crypt(3)
从libcrypt
(在 Linux Mint 等 GNU 系统上带有 GNU libc)调用函数,并使用密码作为第一个参数,哈希 ($6$...
) 作为第二个参数。python
是一种公开该功能的工具,因此您可以执行以下操作:如果输出与哈希匹配,那就是正确的密码。
$HASH
上面可以是完整的散列(like$6$rounds=1234$somesalt$6eFBNhSgwEwdfZBHueBedpcqaVKGcV2DJy/tQMFd3JL88hwvgTkISJShnOUrbtP1fRs8I9rGIdsgWCoiujxD2/
),也可以是最右边的部分$
,即包括盐和可选的轮数($6$rounds=1234$somesalt$
)。或者您可以在以下位置进行验证
python
:(那么显然,
$HASH
必须包含完整的哈希)。使用
python
,您还可以使用该ctypes
模块从任意库中调用函数。因此,调用系统crypt()
功能的另一种方法(不是您需要作为crypt
标准模块之一,只是我之前的印象是该crypt
模块带有自己的单独crypt()
实现)是这样的:ssh root@localhost
想到了,尽管您的发行版可能完全禁用了基于密码的 root 登录和/或安装了密钥对;或以用户身份登录您通常的图形登录屏幕root
。(即使您启用了自动登录,关闭对话框也可能会提供以其他用户身份登录。)