Як створити хеш SHA1 в рубіні?


Відповіді:



8

Для кодування хешами Base64 для перевірки підпису Oauth я використовував

require 'base64'
require 'hmac-sha1'

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

6
FYI, вимога 'hmac-sha1' виконується з дорогоцінного каміння 'ruby-hmac'
andrewrk


-25

Де "серіалізувати" - це деяка функція користувача, визначена в іншому місці.

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

Це не дублікат відповіді @ devstopfix?
Ендрю Грімм

навіть якщо це так, це якийсь досить потворний рубіновий код, який можна підказати, і навіть не згадує, що йому потрібно `вимагати \ 'дайджест / sha1 \' '-1
Ріксіус

16
Не забувайте, що stackoverflow має занадто багато відвідувачів, чому ви не показуєте нам правильний спосіб зробити це? Менше критиків більше прикладів коду
Davidslv

1
що це за функція "серіалізації"? це не частина рубіну. А ще гірше, що рядок, який передається hexdigest, зовсім не динамічний! Цей метод повертає той самий хеш незалежно від того, які дані ви надаєте!
Blixxy

2
Необхідність require 'digest/sha1'для використання SHA1методу.
Gus Shortz
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.