2003-09-28

_ 陰陽師 II


前売り券 購入
;; 10月は 決算整理 も絡んできて、かなり忙しい風味

_ 本日の作業


深夜になると、集中力が増してきて神憑り状態になって、滅茶苦茶な勢いでコードが書ける時ってあるでしょ。
うぉぉ、どんどん進むぜ... って、やりすぎて bug 混入。
一晩経ったら... む?
こういうときは、紙と鉛筆で追う鹿。
...
おりゃ、ELSA EX-VISION 500TV 対応完了。
もうちょい。

_ [PHP] 一意なファイル名

$test_filename = md5(uniqid(mt_rand(), TRUE));
print $test_filename ;
mt_rand 関数は、ランダムな値を返す。
その値を元に、uniqid 関数を呼び出して一意な値を生成する。
その値を md5 関数にかけて、ハッシュ値を求める。
この結果、ファイル名は32文字の文字列(16進数なので、0-9 と A-F からなる)になる。

参考: http://www.hizlab.net/app/php2.html

本日のツッコミ(全2件) [ツッコミを入れる]
# 通りすがりのKen (2003-09-29 02:05)

ユニークなファイル名ですが、これは「推測されない安全な一意ファイル名」を生成しています。
mt_rand は 通常の rand より、より乱数性の高いものです。しかしながら、それでも真の乱数とはいえない(計算で出している以上擬似乱数ですが))ため、md5の一方向ハッシュを使って、推測されないファイル名を出しています。
(これは、参照先では、攻撃者が作業ファイルを特定できないようにするためだと思います)
もし、単純な衝突しにくいファイル名というのであれば別のものを採用したほうがよいかもしれません。
(上記のファイル名生成方法の一部は、暗号用乱数などで使われる技法の一部です)

# すずき (2003-09-29 06:36)

はい、そうします。ありがとうございます。