Я новичок в 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
Можно ли использовать SHA256 с двоичными значениями в кристалле?
Большое вам спасибо. Причиной использования SHA256 два раза является то, что я пытаюсь изучить Crystal, написав библиотеку биткойнов, и по какой-то причине вещи обычно становятся хешированными дважды. – inersha