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 に答える