让Ruby代码工作,从给定的字符串和键创建SHA1哈希

sto*_*ist 0 ruby hash sha1

我有一个小代码片段,我正试图在Ruby中工作.

digest = HMAC.digest(Digest.new(SHA1), Base64.decode64(key), HashString) return Base64.encode64(digest.to_s()).chomp()
Run Code Online (Sandbox Code Playgroud)

我尝试了如下:

hashstring = "POST application/octet-stream
Thu, 05 Jun 2008 16:38:19 GMT /rest/objects date:Thu, 05 Jun 2008 16:38:19 GMT groupacl:other=NONE listable-meta:part4/part7/part8=quick meta:part1=buy
id: 6039ac182f194e15b9261d73ce044939/user1 useracl:jane=FULL_CONTROL,juan=WRITE"

key = "AKLuryj6zs8ste4Y3jTGQp71xq0="


def hash(hs, keyh)
  digest = HMAC.digest(Digest.new(SHA1), Base64.decode64(keyh), hs)
  return Base64.encode64(digest.to_s()).chomp()
end

puts hash hashstring,key
Run Code Online (Sandbox Code Playgroud)

这给了我错误file.rb:1:在`require':没有这样的文件加载 - 来自file.rb的hmac-md5(LoadError):1

我不熟悉ruby或者包含/要求模块如何工作.(或者如果它们与语言捆绑在一起或需要单独下载.我缺少哪些文件/代码来实现此功能?

Jon*_*erg 7

您需要安装ruby-hmac模块.请参阅此博客文章,以获得温和的介绍.