提问人:Kiwi 提问时间:11/11/2023 最后编辑:Kiwi 更新时间:11/17/2023 访问量:100
使用 SHA1+salt 和 MD4 生成密码哈希 [已关闭]
Generate password Hash with SHA1+salt and MD4 [closed]
问:
有人知道如何在 Linux 上使用命令行生成哈希值吗? 我必须生成一个 SHA1 + salt= Password:Cat Salt:XN10Zj2c 的 Hash 和 MD4= Password:Cat 的哈希值
感谢您的帮助!
答:
2赞
Maarten Bodewes
11/11/2023
#1
这里的问题是,没有通用的方法来散列密码和盐。您很可能需要模仿命令行工具,因为它不包含这些算法(因此我使用 -1 和 -2 作为算法标识符)。crypt
例如:
#!/bin/bash
# Your password and salt
password="your_password_here"
salt="your_salt_here"
# Specify the algorithm: -1 for MD4, -2 for SHA-1
algorithm_specifier="-2" # Change this to -1 for MD4
# Function to hash with SHA-1
hash_sha1() {
local pass="$1"
local salt="$2"
echo -n "$pass$salt" | openssl dgst -sha1
}
# Function to hash with MD4
hash_md4() {
local pass="$1"
local salt="$2"
echo -n "$pass$salt" | openssl dgst -md4
}
# Check for the specified hashing algorithm
if [ "$algorithm_specifier" == "-2" ]; then
# SHA-1 hashing
sha1_hash=$(hash_sha1 "$password" "$salt")
echo "$algorithm_specifier$$salt$$sha1_hash"
elif [ "$algorithm_specifier" == "-1" ]; then
# MD4 hashing
md4_hash=$(hash_md4 "$password" "$salt")
echo "$algorithm_specifier$$salt$$md4_hash"
else
echo "Invalid algorithm specifier."
fi
请注意,符号用于分隔“格式”中输出的不同部分。但是,它们不是实际散列的一部分。此外,通常对密码进行哈希处理,然后是盐,而不是相反。$
crypt
crypt
但是,请注意,您既不应使用这些旧的、损坏的哈希值,也不应使用较新的哈希值,例如 SHA-2 或 SHA-3。这样做的原因是,您应该使用具有高迭代计数或工作因子的 PBKDF,例如 PBKDF2 或 Argon2,最好是 16 字节的随机盐。这些函数有时也称为“密码哈希”,这是有充分理由的;它们提供了针对暴力破解和字典攻击的额外保护。
评论