Wie erstelle ich einen SHA1-Hash in Ruby?


Antworten:



8

Für einen Base64-codierten Hash habe ich zur Validierung einer Oauth-Signatur verwendet

require 'base64'
require 'hmac-sha1'

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

6
Zu Ihrer Information, die 'hmac-sha1'-Anforderung wird vom Edelstein' ruby-hmac '
erfüllt

7

Ich habe einen Helfer Juwel , das eine einfache Wrapper um einige SHA1 - Code ist

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

 => "4659d94e7082a65ca39e7b6725094f08a413250a" 

> "hello world".to_sha1

 => "2aae6c35c94fcfb415dbe95f408b9ce91ee846ed" 

-25

Wobei 'serialisieren' eine Benutzerfunktion ist, die an anderer Stelle definiert ist.

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

Ist das nicht ein Duplikat von @ devstopfix 'Antwort?
Andrew Grimm

Selbst wenn es so ist, ist es ein ziemlich hässlicher Ruby-Code, der vorgeschlagen werden muss, und er erwähnt nicht einmal, dass er "require \" Digest / sha1 \ "-1
Rixius

16
Vergessen Sie nicht, dass der Stackoverflow zu viele Besucher hat. Warum zeigen Sie uns nicht den richtigen Weg? Weniger Kritiker mehr Codebeispiele
Davidslv

1
Was ist diese Serialisierungsfunktion? Das ist kein Teil von Rubin. Schlimmer noch, die Zeichenfolge, die an hexdigest übergeben wird, ist überhaupt nicht dynamisch! Diese Methode würde den gleichen Hash zurückgeben, unabhängig davon, welche Daten Sie ihm geben!
Blixxy

2
Benötigen require 'digest/sha1', um SHA1Methode zu verwenden .
Gus Shortz
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.