如何在Ruby中使用HMAC模块创建MD5哈希?

时间:2009-08-31 22:09:56

标签: ruby-on-rails ruby md5 hmac

使用Google + Bing并没有给出一个简单问题的答案:

你应该如何在Ruby中使用HMAC模块来创建一个带MD5的HMAC(使用秘密)?

HMAC文档似乎非常薄。

谢谢!

6 个答案:

答案 0 :(得分:14)

这应该是最简单的方法:

OpenSSL::HMAC.digest(OpenSSL::Digest::Digest.new('md5'), secret_key, your_data)

答案 1 :(得分:7)

应安装以下gem:'ruby-hmac'

$ irb
>> require 'hmac-md5'
=> true
>> HMAC::MD5.new("abc").digest
=> "\324\035\214\331\217\000\262\004\351\200\t\230\354\370B~"
>> HMAC::MD5.new("abc").hexdigest
=> "d41d8cd98f00b204e9800998ecf8427e"
>> 

答案 2 :(得分:4)

这就是我所做的:

HMAC::MD5.new(shared_key).update(data).hexdigest

答案 3 :(得分:2)

这是我在2020年所做的:

OpenSSL::HMAC.hexdigest("MD5", secret_key, your_data)

Ruby文档在这里可用:OpenSSL::HMAC

答案 4 :(得分:1)

  

可能你只想要HMAC :: MD5.new(SECRET).digest

首先查找“salting”哈希。这取决于您的使用情况,但添加固定字符串确实有助于使您的哈希值与其他应用程序的哈希值不同。因此,字典攻击更难。但这只是一般性的说法。

答案 5 :(得分:-1)

http://betterlogic.com/roger/?p=152

没有

或者我记得在我们的宝石中玩弄它,所以也许你可以从中进行逆向工程?

http://github.com/appoxy/aws/tree/master

希望这有帮助。

乍得