linux 使用SHA1+salt和MD4生成密码哈希[关闭]

pkln4tw6  于 2023-11-17  发布在  Linux
关注(0)|答案(1)|浏览(124)

**已关闭。**此问题需要debugging details。目前不接受回答。

编辑问题以包括desired behavior, a specific problem or error, and the shortest code necessary to reproduce the problem。这将帮助其他人回答问题。
5天前关闭。
Improve this question
有人知道如何在Linux上使用命令行生成哈希吗?我必须使用SHA 1 + salt= Password:Cat Salt:XN 10 Zj 2c和MD 4 = Password:Cat生成哈希
谢谢您的帮助!

2o7dmzc5

2o7dmzc51#

这里的问题是,没有通用的方法来散列密码和盐。在所有的可能性,你需要模仿crypt命令行工具,因为它不包含这些算法(因此我使用-1和-2作为算法标识符)。
例如:

#!/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通常会对密码进行哈希,然后是salt,而不是相反。
但是,请注意,您不应该使用这些旧的,破碎的散列**,也不应该使用新的散列,如SHA-2或SHA-3。这样做的原因是,您应该使用PBKDF,如PBKDF 2或Argon 2,具有高迭代计数或工作因子,最好是16字节的随机盐。这些函数有时也称为“密码散列”,并且有很好的理由;它们提供了针对暴力和字典攻击的额外保护。

相关问题