ハッシュされたときに openssl コマンドの正しい値を取得することに問題があるようです。これが私がコードのために持っているものです。
IFS=","
while read -ra line;
do
if [ "${line[1]}" != "" ]; then
echo -n "${line[*]},"; echo -n "${line[1]}" | openssl dgst -sha1 | sed 's/^.* //' ;
else
if [ "${line[1]}" == "" ]; then
echo "${line[*]}, Hash Value: None";
fi
fi
done
これは、テキスト ファイルの 2 番目の列 (コードの "${line[1]}") の入力です。
"1376051635"
これは私がコマンドを実行している方法です:
./orange.sh < "C:\Documents and Settings\562359\Desktop\Analytics\persons\persons.txt"
画面への出力は次のとおりです。
"524786870","1376051635",2483a818fac3e5214697f1ed76d92e2f54d4a277
3 列目は 2 列目のハッシュ値ですが、正しくありません。このコマンドを実行すると
echo -n "1376051635" | openssl dgst -sha1
私の出力は次のとおりです。
(stdin)= f8d822c6b46a2eb4e35bb4d76b8ce2e336d541e8
これが正しいハッシュ値です。なぜこれが機能しないのですか? コードは正しいようですが、本来あるべきハッシュ値とはまったく異なる値が出力されています。この問題に関するヘルプをいただければ幸いです。