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

问题描述:

使用Google + Bing并没有给出应该是一个简单问题的答案:如何在Ruby中使用HMAC模块创建MD5哈希?

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

HMAC文档看起来非常薄。

谢谢!

下面的宝石应安装: '红宝石-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" 
>> 
+0

感谢。 包括一个秘密,是否正确地做到以下几点? HMAC :: MD5.new(SECRET +“abc”)。digest – Crashalot 2009-08-31 22:36:15

+0

可能你只是想要HMAC :: MD5.new(SECRET).digest – DigitalRoss 2009-08-31 23:45:13

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

不是?

或者我记得在我们的宝石里面玩弄它,所以也许你可以从它反向工程?

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

希望这有助于。

乍得

也许你只是想HMAC :: MD5.new(SECRET).digest

首先查找“salting”散列。这取决于你的使用情况,但添加一个固定的字符串可以让你的哈希与其他应用中的哈希不同。因此,字典攻击更难。但这只是一般的说法。

这应该是最简单的方法:

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

这是我做过什么:

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