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

发布于 2024-08-03 16:34:40 字数 130 浏览 8 评论 0原文

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

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

HMAC 文档看起来非常薄弱。

谢谢!

Using Google + Bing didn't yield an answer to what should be a simple question:

How are you supposed to use the HMAC module in Ruby to create a HMAC with MD5 (that uses a secret)?

The HMAC docs seem awfully thin.

Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

美男兮 2024-08-10 16:34:40

这应该是最简单的方法:

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

This should be the easiest way:

OpenSSL::HMAC.digest(OpenSSL::Digest::Digest.new('md5'), secret_key, your_data)
谷夏 2024-08-10 16:34:40

应安装以下 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"
>> 

The following gem should be installed: '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"
>> 
↙温凉少女 2024-08-10 16:34:40

这就是我所做的:

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

This is what I did:

HMAC::MD5.new(shared_key).update(data).hexdigest
∝单色的世界 2024-08-10 16:34:40

在 2020 年,我就是这样做的:

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

Ruby 文档可以在这里找到:OpenSSL::HMAC

In 2020 this is how I did it:

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

Ruby documentation is available here: OpenSSL::HMAC

伤痕我心 2024-08-10 16:34:40

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

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

Probably you just want HMAC::MD5.new(SECRET).digest

Lookup "salting" a hash first. It depends on your usage, but adding a fixed string does help by making your hashes different than the hashes from other apps. Thus, a dictionary attack is harder. But that's just generally speaking.

一江春梦 2024-08-10 16:34:40

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

不?

或者我记得在我们的一颗 Gem 中玩过它,所以也许你可以对其进行逆向工程?

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

希望这有帮助。

乍得

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

no?

Or I remember toying with it inside one of our Gems so maybe you can reverse engineer from it?

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

Hope this helps.

Chad

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文