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