2

我尝试直接在我的控制台上做这样的事情作为一些测试运行:

它似乎不起作用..知道我在做什么错误

salt="3245678906789045689"
password="12321312231"
blub=`sha1($salt.$password)`
-bash: command substitution: line 1: syntax error near unexpected token `$salt.$password'
-bash: command substitution: line 1: `sha1($salt.$password)'

它抛出了一个错误,这是我最后打算做的:

echo $blub

有人可以帮忙看看我在做什么错误吗?

4

2 回答 2

11

可能您想使用OpenSSL 包中的 SHA1 。这应该已经安装在您的系统上。

echo -n "$salt$password" | openssl dgst -sha1
(stdin)= a1b2ce5a82e18f454db6b2d6ee82533914f90337

仅捕获 sha1-digest:

blub=`echo -n "$salt$password" | openssl dgst -sha1 |awk '{print $NF}'`
echo $blub
a1b2ce5a82e18f454db6b2d6ee82533914f90337

我假设您从PHP复制了您的代码。函数用括号调用,.-Operator 连接字符串。在这种解释中,我的代码与您在BASH中的代码完全相同。

于 2012-07-29T12:46:15.723 回答
1

我没有遇到很多关于如何轻松地在 bash 中进行 SHA 校验和并以正确的方式将其放入变量中的解释,同时我们不应该再使用 sha1,但是更难以暴力破解的东西,比如沙512:

dash=`echo -n $password$salt|sha512sum` ##gives hash with trailing dash
read hash rest <<< "$dash" ##removes trailing dash and gives $hash
echo $hash
6555b9d2331203634664f48f604b59372b32badbc115ec6b2586890ef4d3a6b6816d84cc424cdfc538f6a7ccf664c90caeeb942dbf7953051bb1d7414a191c51
于 2015-03-27T17:16:31.313 回答