Macでbash
を使用して文字列のmd5ハッシュを作成するにはどうすればよいですか? md5sum
は私の環境には存在しません。私はmd5に対してman
をしましたが、それが実際に何をするかについて混乱しています。
md5 "string"
ハッシュを返しません。
これは動作するはずです-
[jaypal:~/Temp] echo "this will be encrypted" | md5
72caf9daf910b5ef86796f74c20b7e0b
または、here string
表記を希望する場合-
[jaypal:~/Temp] md5 <<< 'this will be encrypted'
72caf9daf910b5ef86796f74c20b7e0b
man
ページごとに、次のオプションのいずれかを試すことができます
-s string
Print a checksum of the given string.
-p Echo stdin to stdout and append the checksum to stdout.
-q Quiet mode - only the checksum is printed out. Overrides the -r option.
[jaypal:~/Temp] md5 -s 'this will be encrypted'
MD5 ("this will be encrypted") = 502810f799de274ff7840a1549cd028a
[jaypal:~/Temp] md5 -qs 'this will be encrypted'
502810f799de274ff7840a1549cd028a
注:MD5は常に同じハッシュを生成します。上記の例とは異なる出力を見つける理由は、コメントで指摘されているためです。最初の2つの例では、末尾のnewline
文字を使用してハッシュを生成します。それを回避するには、次を使用できます:
[jaypal:~/Temp] echo -n "this will be encrypted" | md5
502810f799de274ff7840a1549cd028a
あなたが求めたものを達成するには:
md5 -s string
出力:MD5( "string")= b45cffe084dd3d20d928bee85e7b0f21
OSXはmd5
を使用しますが、ほとんどの大学はmd5sum
を使用します
rvm のrvmrc検証コードのセクションは、正しいmd5バイナリを見つけてラップします。
__rvm_md5_for()
{
if builtin command -v md5 > /dev/null; then
echo "$1" | md5
Elif builtin command -v md5sum > /dev/null ; then
echo "$1" | md5sum | awk '{print $1}'
else
rvm_error "Neither md5 nor md5sum were found in the PATH"
return 1
fi
return 0
}
( https://github.com/wayneeseguin/rvm/blob/master/scripts/functions/rvmrc からのコード)
他のすべての答えは有効です。 openssl
も提案したい:
➜ echo 'this will be hashed' | openssl md5
55be2dc2df2c1cc7bad72a0ecb338841
次と同等です
➜ echo 'this will be hashed' | openssl dgst -md5
# or
➜ openssl md5 <<< 'this will be hashed'
# or
➜ echo 'this will be hashed' | md5
コマンドラインから:
md5 <<< "String to hash"
8a0a39505c5753ff64a0377ab0265509
正しい方法は、echo -n string | md5
ではなくecho "string" | md5
になります。 (zshを使用しています)
echo -n string | md5
で指定されたmd5ハッシュを変換すると、string
が返されます。
md5 -s string
も機能しますが、これはすでにここで指摘されています。
λ [~] → echo "string" | md5
b80fa55b1234f1935cea559d9efbc39a
λ [~] → echo -n string | md5
b45cffe084dd3d20d928bee85e7b0f21
λ [~] → md5 -s string
MD5 ("string") = b45cffe084dd3d20d928bee85e7b0f21