我正在使用一些代码:
begin require 'digest/hmac' USE_EMBEDDED_HMAC = false rescue puts "HMAC,not found in standard lib." + $!.message require 'hmac-sha1' USE_EMBEDDED_HMAC = true end
正如我所看到的,至少在rails 1.8.6中,它不是标准库的一部分.它是ruby 1.9 lib的一部分吗?如果没有,我应该安装任何宝石?
请注意,使用OpenSSL的解决方案将不被接受,因为它在“require’digest / hmac’中无论如何都会失败”
有问题的代码在这里http://github.com/quetzall/cloud_cache/blob/master/lib/cloud_cache.rb
解决方法
它在1.8.7中可用.试试这个:
ruby -v ruby 1.8.7 (2008-08-11 patchlevel 72) [i686-darwin9] require 'openssl' digest = OpenSSL::Digest::Digest.new('sha1') OpenSSL::HMAC.digest(digest,"superscret","Lorem ipsum dolor sit amet") OpenSSL::HMAC.hexdigest(digest,"Lorem ipsum dolor sit amet")