मैं माणिक में SHA1 हैश कैसे बनाऊं?


जवाबों:


384
require 'digest/sha1'
Digest::SHA1.hexdigest 'foo'

41
वहाँ भी हैDigest::SHA1.base64digest 'foo'
andrewrk

13
FYI करें: Digestरूबी स्टैंडर्ड लाइब्रेरी ( ruby-doc.org/stdlib-1.9.2/libdoc/digest/rdoc/index.html ) का हिस्सा है । इसमें SHA1, SHA2, MD5 और अन्य हैश एल्गोरिदम के लिए कार्यान्वयन शामिल हैं।
jwfearn

8

एक Base64 एन्कोडेड हैश के लिए, Oauth हस्ताक्षर को मान्य करने के लिए, मैंने उपयोग किया

require 'base64'
require 'hmac-sha1'

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

6
FYI करें, 'hmac-sha1' आवश्यकता को मणि 'रूबी-hmac' से पूरा किया जाता है
andrewrk


-25

जहां 'क्रमबद्ध' कुछ उपयोगकर्ता फ़ंक्शन को कहीं और परिभाषित किया गया है।

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

क्या यह @ devstopfix के उत्तर का डुप्लिकेट नहीं है?
एंड्रयू ग्रिम

अगर ऐसा है, तो यह सुझाव देने के लिए कुछ बहुत ही बदसूरत रूबी कोड है, और यह भी उल्लेख नहीं करता है कि इसे 'की जरूरत है \' डाइजेस्ट / sha1 \ '-1'
Rixius

16
यह मत भूलो कि स्टैकओवरफ़्लो में बहुत सारे आगंतुक हैं, आप हमें इसे करने का सही तरीका क्यों नहीं दिखाते हैं? कम आलोचक अधिक कोड उदाहरण
डेविडसन

1
यह 'क्रमबद्ध' कार्य क्या है? वह माणिक का हिस्सा नहीं है। इससे भी बुरी बात यह है कि हेक्सडीगस्ट में जाने वाला तार बिल्कुल भी गतिशील नहीं है! यह विधि उसी हैश को लौटाएगी चाहे आप इसे कितना भी डेटा दें!
ब्लिक्सिस्क

2
विधि require 'digest/sha1'का उपयोग करने की आवश्यकता है SHA1
गस शॉर्टज
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.