Skip to content

Instantly share code, notes, and snippets.

@tychobrailleur
Created July 15, 2019 10:43
Show Gist options
  • Save tychobrailleur/c164c87af6e2450c3ad58e4720059f9b to your computer and use it in GitHub Desktop.
Save tychobrailleur/c164c87af6e2450c3ad58e4720059f9b to your computer and use it in GitHub Desktop.
java_import 'java.security.MessageDigest'
java_import 'java.util.Base64'
def hash256(input)
md = MessageDigest::getInstance('SHA-256')
md.digest(md.digest(input.to_java_bytes))
end
def hash160(input)
md = MessageDigest::getInstance('SHA-256')
sha1 = MessageDigest::getInstance('SHA-1')
sha1.digest(md.digest(input.to_java_bytes))
end
puts Base64::getEncoder().encodeToString(hash256('')) # --> Xfbg4nYTWdMKgnUFjimfzAOBU0VF9Vz0PkGYP11MlFY=
puts Base64::getEncoder().encodeToString(hash160('')) # --> 0o6Kvb13ekgs4O5cJIFKyuUqq/4=
md = MessageDigest::getInstance('SHA-256')
h = md.digest(''.to_java_bytes)
size = h.length
hash_hash = h + h
java.lang.System::arraycopy(h, 0, hash_hash, 0, size)
java.lang.System::arraycopy(h, 0, hash_hash, size, size)
puts Base64::getEncoder().encodeToString(md.digest(hash_hash))
md.reset()
md.update(h)
md.update(h)
puts Base64::getEncoder().encodeToString(md.digest())
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment