在靈藥,你可以得到一個字符串的MD5:MD5哈希在藥劑
ex(1)> :crypto.hash(:md5 , "Elixir") |> Base.encode16()
"A12EB062ECA9D1E6C69FCF8B603787C3"
但是,爲什麼不從終端返回相同的值?
[~ ~]$echo 'Elixir' | md5
694f56f4b30e60837151723777795fc2
確定我錯過了什麼。
在靈藥,你可以得到一個字符串的MD5:MD5哈希在藥劑
ex(1)> :crypto.hash(:md5 , "Elixir") |> Base.encode16()
"A12EB062ECA9D1E6C69FCF8B603787C3"
但是,爲什麼不從終端返回相同的值?
[~ ~]$echo 'Elixir' | md5
694f56f4b30e60837151723777795fc2
確定我錯過了什麼。
的echo
命令將包括一個新行:
iex>:crypto.hash(:md5, "Elixir\n") |> Base.encode16()
"694F56F4B30E60837151723777795FC2"
您可以使用case
修改的Base.encode16情況:
iex>:crypto.hash(:md5, "Elixir\n") |> Base.encode16(case: :lower)
"694f56f4b30e60837151723777795fc2"
您可以使用-n
標誌與echo
到防止新行:
$ echo -n 'Elixir' | md5sum
a12eb062eca9d1e6c69fcf8b603787c3 -
您也可以參考https:// www .djm.org.uk/posts/cryptographic-hash-functions-elixir-generating-hex-digests-md5-sha1-sha2/ –
你爲什麼使用'Base.encode16()'? –
建議不要再使用MD5,而應使用SHA。關於此的更多背景信息:https://www.djm.org.uk/posts/cryptographic-hash-functions-elixir-generating-hex-digests-md5-sha1-sha2/ – Tilo