Как мне создать хэш SHA1 в ruby? - PullRequest
154 голосов

Ответы [ 4 ]

377 голосов
/ 29 августа 2008
require 'digest/sha1'
Digest::SHA1.hexdigest 'foo'
8 голосов
/ 11 мая 2011

Для хэша в кодировке Base64, для проверки подписи Oauth, я использовал

require 'base64'
require 'hmac-sha1'

Base64.encode64((HMAC::SHA1.new('key') << 'base').digest).strip
6 голосов
/ 06 ноября 2013

Я создал помощника gem , который представляет собой простую обертку вокруг некоторого кода sha1

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

 => "4659d94e7082a65ca39e7b6725094f08a413250a" 

> "hello world".to_sha1

 => "2aae6c35c94fcfb415dbe95f408b9ce91ee846ed" 
0 голосов
/ 11 марта 2011

Где 'serialize' - это некоторая пользовательская функция, определенная в другом месте.

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