在拖延了一年多之后, JRuby 团队终于决定将 Ruby 1.8.7 支持添加到 JRuby 主干中:
Ruby 1.8.7 支持终于登陆 JRuby 1.4 了!感谢 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 Scripting Environment 也开始支持JRuby 了。
很多Ruby 程序库通过本地扩展将Ruby 与本地程序库连接起来——但这么做对JRuby 却不行, bcrypt-ruby 就是一个活生生的例子。幸好有Phusion 的无私奉献,bcrypt-ruby 的下一版将能使用在JRuby 及Ruby 1.9.x 上了。其 JRuby 支持包含了 bcrypt 算法的 Java 版本,而 Ruby 1.9 支持则涵盖了在长时间计算过程中对 GIL 处理及释放方式的改进。
那么 bcrypt-ruby 到底为何物呢?它实现了一种散列算法,其运行速度要比其他算法如 SHA-1 慢很多。其想法就是利用该算法来对密码进行散列;试想,如果数据库的密码散列值被窃取,那么就可以通过它计算出密码了。虽然散列算法是单向函数,我们仍旧可以对大量可能的密码进行散列,然后与数据库中存储的散列值进行比对。快速的散列算法对这种暴力破解很有帮助,而这正是 bcrypt 的用武之地。由于算法运行速度很慢,因此人们很难通过暴力破解的方式获取散列密码。
bcrypt-ruby 程序库会保证密码散列值是经过随机数处理过的(即 salt ,意指在每个密码后面添加随机值,然后才计算密码和 salt 的散列值,以此防范“字典攻击”——译者注)。
查看英文原文: JRuby Roundup: Ruby 1.8.7 Support, Android Support, Bcrypt-ruby
评论