Ruby'de bir SHA1 karmasını nasıl oluştururum?


Yanıtlar:



8

Base64 kodlu bir karma için, bir Oauth imzasını doğrulamak için,

require 'base64'
require 'hmac-sha1'

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

6
FYI, 'hmac-sha1' şartı 'ruby-hmac' taşından karşılandı
andrewrk

7

Bazı sha1 kodu etrafında basit bir sarıcı olan bir yardımcı mücevher oluşturdum

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

 => "4659d94e7082a65ca39e7b6725094f08a413250a" 

> "hello world".to_sha1

 => "2aae6c35c94fcfb415dbe95f408b9ce91ee846ed" 

-25

'Serileştir', başka bir yerde tanımlanan bazı kullanıcı işlevleridir.

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

Bu @ devstopfix'in cevabının bir kopyası değil mi?
Andrew Grimm

öyle olsa bile, önermek oldukça çirkin bir yakut kod ve hatta `` digest / sha1 \ '' -1 gerektirdiğinden bile bahsetmiyor
Rixius 23:11

16
Stackoverflow'un çok fazla ziyaretçisi olduğunu unutmayın, neden bize doğru yolu göstermiyorsunuz? Daha az eleştirmen daha fazla kod örneği
Davidslv

1
bu 'serileştirme' işlevi nedir? bu yakutun bir parçası değil. Daha da kötüsü, hexdigest'e aktarılan dize hiç dinamik değil! Bu yöntem, hangi veriyi verirseniz verin aynı karma değerini döndürür!
Blixxy

2
Need require 'digest/sha1'kullanım amacıyla SHA1yöntemle.
Gus Shortz
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.