
プログラム初心者です
掲示板に2chのようなトリップをつけたいと思っています
md5など、わからないので教えてください
質問1
md5、sha1、sha256などありますがこれはサーバーが違うと別の結果になるのでしょうか?
質問2
md5でipから値を作るとプログラムわかる他の人に元のIPがわかってしまいますか?
$str = "127.0.0.1";
$str_md5 = substr(md5($str), 0, 30);
$date_md5 = substr(md5(date("Y-m-d")), 0, 20);
$key_md5 = substr(md5("samplekey"), 0, 10);
$id_md5 = md5($str_md5 . $date_md5 . $key_md5);
$id = substr(base64_encode($id_md5), 0, 8);
echo $id;
また、もっと良い方法があれば教えてください
よろしく願いします
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文字を選択すれば何でもいいです)
No.1
- 回答日時:
>サーバーが違うと別の結果になるのでしょうか?
同じ形式を使えば同じ結果になります。
>ipから値を作るとプログラムわかる他の人に元のIPがわかってしまいますか?
普通は「プログラムがわかる」程度の人にはわかりません。また一般的には例示されたように日付や一種のキーも含めて計算させますから、まずわかりません。
http://ja.wikipedia.org/wiki/MD5
最後にbase64_encodeして8桁だけ取り出すのがなんか無駄に思えます。衝突の発生頻度が高くなりそうでいやだなぁ・・・
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
開始と終了を指定して、その間...
-
strtotime 前月・前々月の表示
-
現在時刻をyyyymmddhhmmss形式...
-
MovableTypeで、ある日付を過ぎ...
-
Dosブロンプトでtabを出力したい
-
shシェルスクリプト 空白行の...
-
Excel VBA:特定の文字列以降(...
-
excel access連携 このテーブル...
-
「取得先」という表現について
-
変数の受け渡しによる画像の表示
-
DTOとEntityの差は何ですか。
-
ps3で久しぶりにCDの音楽情報取...
-
INIファイルに一括書き込みを行...
-
findstrのerrorlevel
-
ActiveReportのサブレポート機...
-
<A href ~で複数の値を渡したい
-
php history.back()の戻るボタ...
-
バッチファイルでpingの結果を...
-
iphlpapiのGetAdaptersInfoでNI...
-
VB.NETからVBAマクロ(引数)を呼...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
開始と終了を指定して、その間...
-
ファイル名に日付の挿入
-
日付データを比較して出力したい!
-
日付の比較
-
子ノードの出力について
-
"0412" を "04" と "12" で区切る
-
「20100101」を「2010/01/01」...
-
AND検索のスクリプト記述方法(...
-
アップロードしたファイル名に...
-
timestamp(14)のフォーマットに...
-
PHP に詳しい方教えてください
-
現在時刻をyyyymmddhhmmss形式...
-
2011-08-18>2011年 8月18日(木)
-
date関数の漢字フォーマット
-
DBから昨日以前の日付のデータ...
-
前月の取得について
-
WP 日時で分岐して表示を変えたい
-
日付の比較方法
-
C言語を使って、ある特定の日の...
-
MS-DOSコマンドのリダイ...
おすすめ情報