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)
希望这有助于某人.
小智 6
echo -n YOUR_TEXT | sha1sum | awk '{print $1}'
Run Code Online (Sandbox Code Playgroud)
将 YOUR_TEXT 与您必须对其进行哈希处理的文本进行交换。
密码格式在不同的应用程序中可能不同.例如,/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)
您需要知道应用程序的确切密码格式以及密码的生成方式.