我想要的是能够获得特定密码的sha1哈希值。
因此,例如,如果我的密码是“hello”,我需要输入什么命令到linux中来获取hello的sha1散列值?
我试过
echo -n "hello" | sha1sum
但它返回的值没有给出数据库存储过程接受的值,该值接受散列值来验证登录(问题不在此存储过程中,因为我们在整个地方使用它验证目的)。
基本上,
我只需要知道一个命令来给出一个字符串并获取它的sha1哈希值
谢谢! :)
答案 0 :(得分:16)
我知道这已经很老了,但这就是为什么它不起作用以及如何应对它:
运行
时echo -n "hello" | sha1sum
如你的例子所示
aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d -
注意' - '最后。
前面的哈希值是hello的正确sha1哈希值,但是破折号会混乱哈希值。
为了只获得第一部分,你可以这样做:
echo -n "hello" | sha1sum | awk '{print $1}'
这将通过awk提供输出,并仅为您提供第1列。 结果:" hello"
的正确sha1aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d
希望这有助于某人。
答案 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与您必须散列的文字进行交换。