まつもと ゆきひろです

In message "Re: [ruby-list:40431] cgi/session.rb 	のセッションIDとファイル名の作り方"
    on Thu, 16 Dec 2004 22:04:55 +0900, とみたまさひろ <tommy / tmtm.org> writes:

|1.8.1 の cgi/session.rb で、Session::create_new_id で 
|md5.hexdigest[0,16] としていて、MD5 のハッシュ値を半分にして 
|session_id を作成していますが、これでも一意性は保たれているのでしょうか。

MD5はハッシュですからもともと一意性は保たれていません。
「十分に安全か」というのが問いだと思いますが、「おそらく」と
いうのが私の答えです。いや、実際検証したわけではないんですが。

|で、1.8.2 では、それをさらに Digest::MD5.hexdigest(id)[0,16] で半分に
|して、ファイル名を生成していますが、やはり一意性は保たれるのでしょうか。

上と同じです。

|あと、1.8.2 の FileStore で prefix のデフォルト値が 1.8.1 と変わってま
|す(1.8.1 では '' で、1.8.2 では 'cgi_sid_')。普段はファイル名は意識す
|ることはないと思うのですが、期限切れのファイルを消すような処理で、互換
|性の問題があるような気がします。

互換性の問題はありますね。これもセキュリティ対策の一環ですか
ら妥協していただくようにお願いするしかないです。