даже если это так, это довольно уродливый рубиновый код, который можно предложить, и даже не упоминает, что ему нужно `require \ 'digest / sha1 \' '-1
Rixius
16
Не забывайте, что у stackoverflow слишком много посетителей, почему вы не показываете нам правильный способ сделать это? Меньше критиков, больше примеров кода
Davidslv
1
что это за функция сериализации? это не часть рубина. Что еще хуже, строка, передаваемая в hexdigest, вообще не является динамической! Этот метод будет возвращать один и тот же хеш независимо от того, какие данные вы ему предоставите!
Бликси
2
Нужно require 'digest/sha1'для того, чтобы использовать SHA1метод.
Ответы:
источник
Digest::SHA1.base64digest 'foo'
Digest
является частью стандартной библиотеки Ruby ( ruby-doc.org/stdlib-1.9.2/libdoc/digest/rdoc/index.html ). Он включает в себя реализации для алгоритмов хеширования SHA1, SHA2, MD5 и других.Для хэша в кодировке Base64, для проверки подписи Oauth, я использовал
источник
Я создал вспомогательный гем, который является простой оболочкой вокруг некоторого кода sha1
источник
Где 'serialize' - это некоторая пользовательская функция, определенная в другом месте.
источник
require 'digest/sha1'
для того, чтобы использоватьSHA1
метод.