Bagaimana cara membuat hash SHA1 di ruby?


Jawaban:



8

Untuk hash yang disandikan Base64, untuk memvalidasi tanda tangan Oauth, saya menggunakan

require 'base64'
require 'hmac-sha1'

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

6
FYI, persyaratan 'hmac-sha1' dipenuhi dari permata 'ruby-hmac'
andrewrk

7

Saya membuat permata pembantu yang merupakan pembungkus sederhana di sekitar beberapa kode sha1

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

 => "4659d94e7082a65ca39e7b6725094f08a413250a" 

> "hello world".to_sha1

 => "2aae6c35c94fcfb415dbe95f408b9ce91ee846ed" 

-25

Di mana 'bersambung' adalah beberapa fungsi pengguna yang didefinisikan di tempat lain.

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

Bukankah ini duplikat dari jawaban @ devstopfix?
Andrew Grimm

bahkan jika itu adalah, itu adalah beberapa kode ruby ​​yang sangat jelek untuk disarankan, dan bahkan tidak menyebutkan bahwa itu memerlukan `memerlukan \ 'intisari / sha1 \' '-1
Rixius

16
Jangan lupa bahwa stackoverflow memiliki terlalu banyak pengunjung, mengapa Anda tidak menunjukkan kepada kami cara yang tepat untuk melakukannya? Kritik kurang contoh kode lebih
Davidslv

1
apa fungsi 'cerita bersambung' ini? itu bukan bagian dari ruby. Lebih buruk lagi, string yang diteruskan ke hexdigest sama sekali tidak dinamis! Metode ini akan mengembalikan hash yang sama terlepas dari data apa yang Anda berikan!
Blixxy

2
Perlu require 'digest/sha1'untuk menggunakan SHA1metode.
Gus Shortz
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.