2016-03-21 6 views
9

अमृत में आप एक स्ट्रिंग के md5 प्राप्त कर सकते हैं:हैश MD5 अमृत

ex(1)> :crypto.hash(:md5 , "Elixir") |> Base.encode16() 
"A12EB062ECA9D1E6C69FCF8B603787C3" 

लेकिन टर्मिनल से एक ही मूल्य वापस नहीं करता है?

[~ ~]$echo 'Elixir' | md5 
694f56f4b30e60837151723777795fc2 

निश्चित रूप से मुझे कुछ याद आ रहा है।

+1

अब एमडी 5 का उपयोग नहीं करने की सिफारिश की जाती है, लेकिन इसके बजाय एसएचए। इस पर अधिक पृष्ठभूमि: https://www.djm.org.uk/posts/cryptographic-hash-functions-elixir-generating-hex-digests-md5-sha1-sha2/ – Tilo

उत्तर

29

echo आदेश एक नई लाइन में शामिल होंगे:

iex>:crypto.hash(:md5, "Elixir\n") |> Base.encode16() 
"694F56F4B30E60837151723777795FC2" 

आप case उपयोग कर सकते हैं Base.encode16 के मामले को संशोधित करने के:

iex>:crypto.hash(:md5, "Elixir\n") |> Base.encode16(case: :lower) 
"694f56f4b30e60837151723777795fc2" 

आप को echo साथ -n ध्वज का उपयोग कर सकते नई लाइन को रोकें:

$ echo -n 'Elixir' | md5sum 
a12eb062eca9d1e6c69fcf8b603787c3 - 
+0

आप कैल https: // www का भी संदर्भ लें .djm.org.uk/पोस्ट/क्रिप्टोग्राफिक-हैश-फ़ंक्शंस-एलिक्सिर-जेनरेटिंग-हेक्स-डाइजेस्ट-एमडी 5-शाए 1-शा 2/ –

+0

आपने 'Base.encode16()' का उपयोग क्यों किया? –

संबंधित मुद्दे