如何在不使用文件的情况下从命令行使用OpenSSL生成SHA-512哈希?
我试过了
echo "password" | openssl dgst -sha512
字符串
但是哈希看起来是错误的(与http://hash.online-convert.com/sha512-generator相比)。
如何在不使用文件的情况下从命令行使用OpenSSL生成SHA-512哈希?
我试过了
echo "password" | openssl dgst -sha512
字符串
但是哈希看起来是错误的(与http://hash.online-convert.com/sha512-generator相比)。
3条答案
按热度按时间kqlmhetl1#
试试
echo -n "password"
。发生的情况是
echo
添加到字符串末尾的新行字符被散列。-n
到echo
抑制了这种行为。rvpgvaaj2#
如果你使用的是MacOS,你可能会遇到
echo
忽略-n
参数的情况。要解决这个问题,直接调用二进制文件:字符串
u4vypkhs3#
对于那些仍在寻找答案的人来说,还有另一种选择。
您可以简单地使用:用途:
字符串
-6
告诉OpenSSL使用SHA-512。这是测试,发现工作在OpenSSL 3.2.0 23 Nov 2023(库:OpenSSL 3.2.0 23 Nov 2023)在MacOS索诺马(14.1.2(23 B 92))。
为了防止密码在历史记录中被其他人窥探,您可以将
setopt HIST_IGNORE_SPACE
放置到~/.zshrc
文件中。或者,当您仍然使用Bash时(zsh是MacOS的默认设置),该设置称为
HISTCONTROL=ignorespace
并放入~/.bashrc
文件中。然后,每当发出包含敏感信息的命令时,您只需在命令行上以空格开始,如下所示:
型
最后,当您没有在命令行中指定密码时,OpenSSL会提示您输入密码,并要求您进行验证。这样,它就不会出现在您的历史记录中,也不需要空间。