我想要的是能够获得特定密码的sha1哈希值。
因此,例如,如果我的密码是“你好”我需要input到Linux来获得你好sha1散列值什么命令?
我试过了
echo -n "hello" | sha1sum
但它返回的值没有给出一个被数据库存储过程接受的值,它接受哈希值来validationlogin(这个问题不在这个存储过程中,因为我们在整个地方使用它来进行validation) 。
基本上,
我只需要知道一个命令给一个string,并得到它的sha1哈希值
谢谢! 🙂
密码格式在不同的应用程序中可能有所不同。 例如,对于/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 #
您需要知道应用程序的确切密码格式以及如何生成密码。
我知道这是非常古老的,但这是为什么它没有工作,该怎么办:
当你运行
echo -n "hello" | sha1sum
就像你的例子一样
aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d -
最后注意“ – ”。
前面的散列是你好的正确的sha1散列,但破折号混淆了散列。
为了得到只有第一部分,你可以做到这一点:
echo -n "hello" | sha1sum | awk '{print $1}'
这将通过awk提供你的输出,只给你第一列。 结果:“hello”的正确sha1
aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d
希望这有助于某人。
echo -n YOUR_TEXT | sha1sum | awk '{print $1}'
将YOUR_TEXT与您必须对其进行哈希处理的文本进行交换。