我正在使用一些代码:
- 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")