1年前にJRubyでのRuby 1.8.7サポートの先送りを決めたが、現在はJRubyチームがtrunkにて対応している。
JRuby 1.4でRuby 1.8.7に対応します!@olabini氏、Marcin Mielzynski氏、そしてJRubyコミュニティメンバーに感謝です!
JRuby 1.4はJRubyの次期リリースで、年内リリースを目指しており、jruby.propertiesを見ると、Rubyのバージョンがデフォルトで "1.8.7"であることがわかる。
JRubyのAndroidサポートも改善されている。Charles Nutter氏は JRubyベースirb
をAndroidアプリケーションとして公開していて、ソースは GitHub上でruboto-irbとして公開されている。
関連ニュースとしてAndroidスクリプト開発環境も現在はJRuby をサポートしている。
たくさんのRubyライブラリはRubyと会話するのにネイティブなエクステンションを使っている、つまりJRuby上では使えない。そのひとつに bcrypt-rubyがある。しかし、Phusion氏のコントリビューションのおかげで、bcrypt-rubyの次期バージョンでは動作するようになり、Ruby 1.9.xでも同様に動作するようになる。そのJRubyサポートはbcryptアルゴリズムのJavaポートを含んでいて、Ruby 1.9 サポートは長時間の計算においてのGILのハンドリング、リリースのされ方について変更が入っている。
そもそも bcrypt-rubyって何か? SHA-1のようなハッシュ関数よりも低速で動作するハッシュアルゴリズムを実装している。アイデアはハッシュパスワードへのアルゴリズム適用である。もしデータベースにあるハッシュ値のパスワードが盗まれたら、パスワードの解析によく利用される。 アルゴリズムのハッシュは一方向暗号であるが、考えられるパスワードをハッシュし、データベースにある値とハッシュ値の比較する、ということをたくさん行うことでまだ解析ができてしまう。 高速ハッシュアルゴリズムはこのようなブルートフォース攻撃に結構、便利である。ここがbcryptの出番である。低速であることは、ハッシュされたパスワードに対してブルートフォース攻撃をかけることをより不利にする。
bcrypt-rubyライブラリはパスワードハッシュにサルトも使うことを保証している。