web-dev-qa-db-ja.com

Mac OS Xのbashでmd5ハッシュを作成する方法

Macでbashを使用して文字列のmd5ハッシュを作成するにはどうすればよいですか? md5sumは私の環境には存在しません。私はmd5に対してmanをしましたが、それが実際に何をするかについて混乱しています。

md5 "string"

ハッシュを返しません。

46
WildBill

これは動作するはずです-

[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
87
jaypal singh

あなたが求めたものを達成するには:

md5 -s string

出力:MD5( "string")= b45cffe084dd3d20d928bee85e7b0f21

20
user3842869

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 からのコード)

15
richo

他のすべての答えは有効です。 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
1
Kyr

コマンドラインから:

md5 <<< "String to hash"
8a0a39505c5753ff64a0377ab0265509
1
Cameron E

正しい方法は、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
0
Sand1512