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

7

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

如何在Ruby中使用HMAC模块创建一个带有MD5的HMAC(使用一个密钥)?

HMAC文档似乎非常薄弱。

谢谢!

6个回答

14

这应该是最简单的方法:

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

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"
>> 

包含一个秘密,是否应该执行以下操作?HMAC::MD5.new(SECRET + "abc").digest - Crashalot
可能你只需要使用HMAC::MD5.new(SECRET).digest。 - DigitalRoss

4

2020年,我是这样做的:

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

这里提供Ruby文档: OpenSSL::HMAC


4

这是我所做的内容:

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

1
可能你只需要使用HMAC::MD5.new(SECRET).digest。
首先查找“加盐”哈希。这取决于你的使用情况,但添加一个固定字符串确实有所帮助,因为它使得你的哈希与其他应用程序的哈希不同。因此,字典攻击更加困难。但这只是一般性的说法。

-1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接