JRuby综述:Ruby 1.8.7支持、Android支持及Bcrypt-ruby

在拖延了一年多之后,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

你可能感兴趣的:(JRuby综述:Ruby 1.8.7支持、Android支持及Bcrypt-ruby)