我不知道/etc/shadow
Linux中存储密码的算法是什么。
我通过python通过以下脚本进行了测试:
import hashlib
message = b"123"
md5_hash = hashlib.md5(message).hexdigest()
sha1_hash = hashlib.sha1(message).hexdigest()
sha256_hash = hashlib.sha256(message).hexdigest()
sha384_hash = hashlib.sha384(message).hexdigest()
sha512_hash = hashlib.sha512(message).hexdigest()
print(f"MD5: {md5_hash}")
print(f"SHA-1: {sha1_hash}")
print(f"SHA-256: {sha256_hash}")
print(f"SHA-384: {sha384_hash}")
print(f"SHA-512: {sha512_hash}")
但是我没有看到我的密码。我的密码是123。
- 卷影存储是否为 HASH?如果是,我应该放弃获取密码。
- 如果密码没有以哈希形式存储,我该如何获取它?
在 Unix 的早期,没有哈希算法。有人指出,如果你使用固定密钥加密密码(使用 DES,唯一可用的方法),则可以解密。但是如果你用密码加密 0,则该操作不容易逆转。下一个问题是避免两个密码产生相同的编码形式,因此引入了称为“Salt”的东西。盐是编码密码的一部分。使用比十六进制更紧凑的编码。这种情况持续了相当长一段时间。
随后,加密哈希被开发出来。其中许多现在可用于密码哈希。为了区分哈希,通常会在编码字符串中添加前缀,如“$1$”、“$6$”和“$f$”。盐仍被使用,紧凑编码也是如此。使用哈希时,盐会与密码一起进行哈希处理,可能要经过多个步骤。
归根结底,您无法从密码哈希值中找到
/etc/shadow
或/etc/passwd
。如果您想知道所有变体,您可以尝试查看密码破解程序的文档(甚至源代码)。