![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?c9bd177)
プログラム初心者です
掲示板に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で質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# str[j++]の意味 2 2022/08/30 16:20
- Perl perlについての質問 2 2022/10/17 15:25
- MySQL MYSQL エラー 2 2022/10/18 11:37
- UNIX・Linux cronの@rebootでのdateコマンドの実行につきまして 2 2023/06/11 16:23
- PHP substrの使い方について教えて下さい。 4 2023/02/17 15:59
- JavaScript 以前の質問だと、どの条件でも配列が表示されてしまいます。 1 2022/07/09 11:40
- C言語・C++・C# c言語 プログラムのエラー 1 2023/02/11 20:31
- JavaScript gasについて 1 2022/05/31 21:51
- PHP Q&Aサイトを作成していてURLの生成方法について迷っているのでアドバイスお願い致します 1 2023/08/10 16:42
- MySQL php テーブルを作れない 2 2022/11/17 18:22
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ファイル名に日付の挿入
-
アップロードしたファイル名に...
-
PHP 指定した期間だけ表示した...
-
複数のRSSのタイトル等をPDOでM...
-
日付
-
Dosブロンプトでtabを出力したい
-
DTOとEntityの差は何ですか。
-
shシェルスクリプト 空白行の...
-
ps3で久しぶりにCDの音楽情報取...
-
【C#】DataGridViewの最大列数...
-
WordでExcelデータを差込...
-
php 入力画面から確認表示画面...
-
プリンタ用紙種類の取得
-
Yahoo! JAPAN IDを新規取得でき...
-
wordの差し込み印刷で文字...
-
syntax error, unexpected 'ech...
-
PHPの名前空間インポートについて
-
ミュージックのアートワークを...
-
PHP正規表現の難題・preg_repla...
-
PHP ハイパーリンク
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
開始と終了を指定して、その間...
-
昨日の日付を取得するVBscript
-
ファイル名に日付の挿入
-
C言語を使って、ある特定の日の...
-
アップロードしたファイル名に...
-
C言語でシステム日付との差を...
-
昨日の日付名でファイルを作成...
-
現在時刻をyyyymmddhhmmss形式...
-
今日の日付から1週間のリスト
-
PHP 指定した期間だけ表示した...
-
差分の月数を算出する方法
-
日付によって画像を変える
-
プルダウンメニューの値をDBに...
-
MYSQLの日付から現在までの年数...
-
月曜日から始まる週間カレンダ...
-
Java Scriptで、ある日付に加算...
-
PHPでn日後を計算したい
-
MS-DOSコマンドのリダイ...
-
日付が変わるとカウントアップ
-
改行されないカレンダー(PHP)
おすすめ情報