Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
sha1密码哈希linux_Linux_Bash_Shell_Cryptography_Sha1 - Fatal编程技术网

sha1密码哈希linux

sha1密码哈希linux,linux,bash,shell,cryptography,sha1,Linux,Bash,Shell,Cryptography,Sha1,我想要的是能够获得特定密码的sha1散列值 例如,如果我的密码是“hello”,那么我需要在linux中键入什么命令来获取hello的sha1散列值 我试过了 echo -n "hello" | sha1sum 但是它返回的值没有给出一个数据库存储过程接受的值,该数据库存储过程接受散列值来验证登录(这个问题不在这个存储过程中,因为我们到处使用它来验证) 基本上 我只需要知道一个命令就可以给出一个字符串并返回它的sha1散列值 谢谢!:) 在不同的应用程序中,密码格式可能不同。例如,对于/etc

我想要的是能够获得特定密码的sha1散列值

例如,如果我的密码是“hello”,那么我需要在linux中键入什么命令来获取hello的sha1散列值

我试过了

echo -n "hello" | sha1sum
但是它返回的值没有给出一个数据库存储过程接受的值,该数据库存储过程接受散列值来验证登录(这个问题不在这个存储过程中,因为我们到处使用它来验证)

基本上

我只需要知道一个命令就可以给出一个字符串并返回它的sha1散列值


谢谢!:)

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

#perl-e'打印密码(“密码”,q($5$salt$),“\n”;'
$5$salt$Gcm6FsVtF/Qa77ZKD.iwsJlCVPY0XSMgLJL0Hnww/c1
#
对于
LDAP
(例如
slapd.conf
)中的密码,可能是:

#slappasswd-h“{SSHA}”
新密码:
重新输入新密码:
{SSHA}BJEE8DPBJYEC7HD1KUHXQUDF9DT4HYA
#

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

我知道这确实很旧,但以下是它不起作用的原因以及如何处理:

当你运行

echo -n "hello" | sha1sum
在你的例子中,你得到

aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d  -
注意结尾的“-”

前面的散列是hello的正确sha1散列,但是破折号弄乱了散列

要仅获取第一部分,您可以执行以下操作:

echo -n "hello" | sha1sum | awk '{print $1}'
这将通过awk提供您的输出,并只提供第1列。 结果:正确的sha1表示“hello”

希望这对别人有帮助

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

将您的文本与您必须散列的文本交换。

您的问题是缺少盐。Python和
sha1sum
返回
aaf4c61dcc5e8a2dabede0f3b482cd9ea9434d
。你确定密码在散列之前没有附加盐吗?我想如果我的命令没有错,那一定是其他原因。谢谢你看这个!作为盐的问题结束了Hey Dan,你有没有可能接受回答你问题的答案?OP已经评论说这是盐的问题。只使用散列值(MD5,SHA1,…)作为密码不是一个好的做法。我完全同意不使用MD5或SHA1等未加盐的密码。事实上,我错过了他不再需要答案的事实。我突然想到,他使用的命令没有完全起作用,因为它最终会输出一个额外的破折号。因为他的问题是“我只需要知道一个命令来给出一个字符串并获取它的sha1散列值”,而我没有看到完整的答案,所以我插话了。谢谢你指出这一点。嗨,我有两个问题。。。top方法仍然安全吗?为什么盐会直接输出到散列?它不应该在散列之前添加吗?谢谢你<代码>1)我不能确定它是否安全,因为这是非常主观的。在我的Debian9上,它仍然支持md5、sha256和sha512<代码>2)是,salt将影响哈希结果,salt也将是密码的一部分。这就是系统验证用户密码的方式:用户输入密码(明文),系统获取salt并重新计算结果,并将其与/etc/passwd(实际上是/etc/shadow)中的密码(加密)进行比较。如果没有盐,系统将无法验证它。
echo -n YOUR_TEXT | sha1sum | awk '{print $1}'