我是Crystal的新手。我想尝试找到一个十六进制字符串的哈希值SHA256。我已经成功地得到一些工作:Crystal:如何查找二进制值的SHA256哈希值?
sha256 = OpenSSL::Digest.new("sha256")
puts sha256.update("abcd")
但我不知道如何把“ABCD”的二进制值中的散列函数,或得到二进制出来。我基本上想能够重新创建这个Ruby功能:
def hash256(hex)
# 1. Convert hex string to array, and pack in to binary
binary = [hex].pack("H*")
# 2. Hash the binary value (returns binary)
hash1 = Digest::SHA256.digest(binary)
# 3. Hash it again (returns binary)
hash2 = Digest::SHA256.digest(hash1)
# 4. Convert back to hex (must unpack as array)
result = hash2.unpack("H*")[0]
return result
end
是否有可能在Crystal中使用SHA256的二进制值?
非常感谢。两次使用SHA256的原因是因为我试图通过编写一个比特币库来学习Crystal,而没有真正的理由,事情往往会被哈希两次。 – inersha