sha1密码哈希linux

Dan*_*Dan 13 linux bash shell cryptography sha1

我想要的是能够获得特定密码的sha1哈希值.

所以,例如,如果我的密码是"你好",我需要输入什么命令到linux来获取hello的sha1散列值?

我试过了

echo -n "hello" | sha1sum
Run Code Online (Sandbox Code Playgroud)

但它返回的值没有给出数据库存储过程接受的值,该值接受散列值来验证登录(该问题不在此存储过程中,因为我们在整个地方使用它来进行验证) .

基本上,

我只需要知道一个命令来给出一个字符串并获取它的sha1哈希值

谢谢!:)

Dom*_*Dom 20

我知道这已经很老了,但这就是为什么它不起作用以及如何处理它:

当你运行

echo -n "hello" | sha1sum
Run Code Online (Sandbox Code Playgroud)

就像你的例子中一样

aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d  -
Run Code Online (Sandbox Code Playgroud)

最后注意' - '.

前面的哈希值是hello的正确sha1哈希值,但是破折号会混乱哈希值.

为了只得到第一部分你可以这样做:

echo -n "hello" | sha1sum | awk '{print $1}'
Run Code Online (Sandbox Code Playgroud)

这将通过awk输出您的输出,并仅为您提供第一列.结果:正确的sha1为"你好"

aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d
Run Code Online (Sandbox Code Playgroud)

希望这有助于某人.

  • 我完全同意不使用未加盐的 md5 或 sha1 等作为密码。我实际上错过了他不再需要答案的事实。令我震惊的是,他使用的命令并没有完全起作用,因为它最终会输出一个额外的破折号。由于他的问题是“我只需要知道一个命令来给出一个字符串并取回它的 sha1 散列值”而我没有看到完全回答,我插话了。感谢您指出这一点。 (2认同)

小智 6

echo -n YOUR_TEXT | sha1sum | awk '{print $1}'
Run Code Online (Sandbox Code Playgroud)

将 YOUR_TEXT 与您必须对其进行哈希处理的文本进行交换。


pyn*_*exj 5

密码格式在不同的应用程序中可能不同.例如,/etc/passwd您可以使用以下命令生成SHA-256密码:

# perl -e 'print crypt("password", q($5$salt$)), "\n";'
$5$salt$Gcm6FsVtF/Qa77ZKD.iwsJlCVPY0XSMgLJL0Hnww/c1
#
Run Code Online (Sandbox Code Playgroud)

对于LDAP(例如for slapd.conf)中的密码,它可能是:

# slappasswd -h "{SSHA}"
New password:
Re-enter new password:
{SSHA}bjEe8dPBjyecc7hD1kUhxQUdF9dt4Hya
#
Run Code Online (Sandbox Code Playgroud)

您需要知道应用程序的确切密码格式以及密码的生成方式.