• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:md5について)

md5についての理解と使い方

このQ&Aのポイント
  • md5、sha1、sha256などのハッシュ関数は異なるサーバーでも異なる結果になります。
  • md5を使用してIPから値を作成した場合、他の人に元のIPがわかることはありません。
  • md5を使用してトリップを作成する際には、さらに安全性を高める方法があるかもしれません。

質問者が選んだベストアンサー

  • ベストアンサー
noname#244856
noname#244856
回答No.4

訂正。先頭2文字はソルトになるのでsubstrで取ってあげてください。 $elements = array( $_SERVER['REMOTE_ADDR'], date('Y-m-d', $_SERVER['REQUEST_TIME']), 'ユーザーが入力したキー', ); $hash = substr(crypt(implode("\0", $elements), 'tY'), 2);

flash0
質問者

お礼

参考になりました。ありがとうございます

その他の回答 (3)

noname#244856
noname#244856
回答No.3

md5やsha1で桁数を減らしてしまうと衝突する可能性が高まるので、cryptを使えばいいと思います。 $elements = array( $_SERVER['REMOTE_ADDR'], date('Y-m-d', $_SERVER['REQUEST_TIME']), $key ); $hash = crypt(implode("\0", $elements), 'tY'); こんな感じでどうぞ。 (最後の 'tY' 半角英数字と「スラッシュ」「ピリオド」から2文字を選択すれば何でもいいです)

flash0
質問者

お礼

回答ありがとうございます いろいろやり方あるのですね 勉強になりました

  • agunuz
  • ベストアンサー率65% (288/438)
回答No.2

あ、失礼。 最後の「base64_encode」は問題ないです(ちょっと勘違い)。まぁ8桁あれば・・・いいかな(桁数にコストがかかるケースもあるだろうし)。

flash0
質問者

お礼

桁数はちょっとかんがえてみます

  • agunuz
  • ベストアンサー率65% (288/438)
回答No.1

>サーバーが違うと別の結果になるのでしょうか? 同じ形式を使えば同じ結果になります。 >ipから値を作るとプログラムわかる他の人に元のIPがわかってしまいますか? 普通は「プログラムがわかる」程度の人にはわかりません。また一般的には例示されたように日付や一種のキーも含めて計算させますから、まずわかりません。 http://ja.wikipedia.org/wiki/MD5 最後にbase64_encodeして8桁だけ取り出すのがなんか無駄に思えます。衝突の発生頻度が高くなりそうでいやだなぁ・・・

flash0
質問者

お礼

回答ありがとうございます 同じ値になるのですね。勉強になりました >まずわかりません 安心しました。ありがとうございました

関連するQ&A