19

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

因此,例如,如果我的密码是“hello”,我需要在 linux 中输入什么命令来获取 hello 的 sha1 散列值?

我试过了

echo -n "hello" | sha1sum

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

基本上,

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

谢谢!:)

4

3 回答 3

32

我知道这真的很旧,但这就是为什么它不起作用以及如何处理它:

当你运行

echo -n "hello" | sha1sum

如您的示例所示

aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d  -

注意最后的“-”。

前面的散列是 hello 的正确 sha1 散列,但破折号弄乱了散列。

为了只获得第一部分,您可以这样做:

echo -n "hello" | sha1sum | awk '{print $1}'

这将通过 awk 提供您的输出,并且只为您提供第一列。结果:“你好”的正确 sha1

aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d

希望这可以帮助某人。

于 2016-05-24T20:31:30.770 回答
6
echo -n YOUR_TEXT | sha1sum | awk '{print $1}'

将 YOUR_TEXT 与您必须散列的文本交换。

于 2017-08-30T13:05:08.713 回答
5

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

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

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

# slappasswd -h "{SSHA}"
New password:
Re-enter new password:
{SSHA}bjEe8dPBjyecc7hD1kUhxQUdF9dt4Hya
#

您需要知道应用程序的确切密码格式以及密码是如何生成的。

于 2013-03-26T03:10:01.343 回答