sha1密码哈希linux

时间:2013-03-25 22:31:31

标签: linux bash shell cryptography sha1

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

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

我试过

echo -n "hello" | sha1sum

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

基本上,

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

谢谢! :)

3 个答案:

答案 0 :(得分:16)

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

运行

echo -n "hello" | sha1sum

如你的例子所示

aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d  -

注意' - '最后。

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

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

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

这将通过awk提供输出,并仅为您提供第1列。 结果:" hello"

的正确sha1
aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d

希望这有助于某人。

答案 1 :(得分:5)

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

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

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

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

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

答案 2 :(得分:1)

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

将YOUR_TEXT与您必须散列的文字进行交换。