RubyでSHA1ハッシュを作成するにはどうすればよいですか?


回答:



8

Base64でエンコードされたハッシュの場合、Oauth署名を検証するために、

require 'base64'
require 'hmac-sha1'

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

6
ちなみに、「hmac-sha1」の要件は、宝石「ruby-hmac」から満たされています
アンドリューク

7

私はいくつかのsha1コードの単純なラッパーであるヘルパーgemを作成しました

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

 => "4659d94e7082a65ca39e7b6725094f08a413250a" 

> "hello world".to_sha1

 => "2aae6c35c94fcfb415dbe95f408b9ce91ee846ed" 

-25

'serialize'は他の場所で定義されたユーザー関数です。

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

これは@devstopfixの回答の複製ではありませんか?
Andrew Grimm、

たとえそうであっても、提案するのはかなり醜いrubyコードであり、 `require \ 'digest / sha1 \' '-1が必要であることさえ言及していない
Rixius

16
stackoverflowの訪問者が多すぎることを忘れないでください。それを行う正しい方法を示さないのはなぜですか?批評家を
減らして

1
この「シリアライズ」機能は何ですか?それはルビーの一部ではありません。さらに悪いことに、hexdigestに渡される文字列は動的ではありません!このメソッドは、どのデータを指定しても同じハッシュを返します。
Blixxy 2012

2
メソッドrequire 'digest/sha1'を使用するために必要SHA1です。
Gus Shortz 2013年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.