如何在ruby中创建SHA1哈希?


Answers:



8

对于Base64编码的哈希,为了验证Oauth签名,我使用了

require 'base64'
require 'hmac-sha1'

Base64.encode64((HMAC::SHA1.new('key') << 'base').digest).strip

6
仅供参考,宝石“ ruby​​-hmac”满足了“ hmac-sha1”的要求
andrewrk

7

我创建了一个辅助gem,它是一些sha1代码的简单包装

require 'rickshaw'
> Rickshaw::SHA1.hash('LICENSE.txt')

 => "4659d94e7082a65ca39e7b6725094f08a413250a" 

> "hello world".to_sha1

 => "2aae6c35c94fcfb415dbe95f408b9ce91ee846ed" 

-25

“序列化”是在其他地方定义的一些用户功能。

 def generateKey(data)
    return Digest::SHA1.hexdigest ("#{serialize(data)}")
 end

这不是@devstopfix的答案的副本吗?
安德鲁·格林

即使是这样,也暗示了一些难看的红宝石代码,甚至没有提到它需要`require \'digest / sha1 \“ -1
Rixius,2011年

16
不要忘记stackoverflow的访问者太多,为什么您没有向我们展示正确的方法呢?更少的批评家,更多的代码示例
Davidslv 2011年

1
这个“序列化”功能是什么?那不是红宝石的一部分。更糟糕的是,传递给hexdigest的字符串根本不是动态的!无论您提供什么数据,此方法都将返回相同的哈希值!
Blixxy 2012年

2
需要require 'digest/sha1'使用SHA1方法。
Gus Shortz
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.