In article <470C9094.3020108 / sarion.co.jp>, "NAKAMURA, Hiroshi" <nakahiro / sarion.co.jp> writes: >> 「ミカロコ」ってなんですか? > > 隠語でしたすいません。Michal Rokos。最初にext/opensslを実装した人です。 なるほど。 > 私のOpenSSL::Random.random_bytesの用途では、hexやbase64にすることはほと > んどなく、そのまま共有鍵にしたり、巨大整数とみなしてMPI(*)などの巨大整数 > 表現に変換する。 > > (*) OpenPGPで定義されたフォーマット。 ふむ。そういう具体的な用途は参考になります。 > ここでの私と田中さんの認識の違いは、[ruby-dev:30939]、[ruby-dev:30940] > あたりから続いているのだと思います。私としては、session idの生成という、 > secure randomの一用途のために、secure randomクラスにメソッドを追加するの > が気になる。メソッドの必要性は理解してますし、標準添付するのにも賛成。こ > れがcgi/session.rbの中だったり、sessionidgenerator.rbという名前なら気に > ならない。 まぁ、大クラス主義ですから、まちがいやすいメソッド名でなけれ ばいろんな機能があっていいんじゃないですかね。 > bytesを推奨する意図はそれほどありませんでした。hexやbase64を推奨すること > により、SecureRandom.base64で取得したものをbase64 decodeして共有鍵に使 > う、などという事例が起こらないで欲しい、という程度です。 以下の 3つを比べると、SecureRandom.random_bytes がいちばん短 いので、base64 や hex 自体が短くてもわざわざそっちを使うよう な懸念は大きくないように思います。 * SecureRandom.random_bytes * SecureRandom.base64.unpack("m")[0] * [SecureRandom.hex].pack("H*") -- [田中 哲][たなか あきら][Tanaka Akira]