Sha256 Hashes in Kotlin
Here’s the translation of the SHA256 Hashes example from Go to Kotlin, formatted in Markdown suitable for Hugo:
Our first example demonstrates how to compute SHA256 hashes in Kotlin. SHA256 hashes are frequently used to compute short identities for binary or text blobs. For example, TLS/SSL certificates use SHA256 to compute a certificate’s signature.
import java.security.MessageDigest
fun main() {
val s = "sha256 this string"
// Here we start with a new hash.
val md = MessageDigest.getInstance("SHA-256")
// update expects bytes. If you have a string s,
// use s.toByteArray() to convert it to bytes.
md.update(s.toByteArray())
// This gets the finalized hash result as a byte array.
val bs = md.digest()
println(s)
println(bs.joinToString("") { "%02x".format(it) })
}
Kotlin implements several hash functions in the java.security
package, which we can access through the MessageDigest
class.
Running the program computes the hash and prints it in a human-readable hex format.
$ kotlinc SHA256Hashes.kt -include-runtime -d SHA256Hashes.jar
$ java -jar SHA256Hashes.jar
sha256 this string
1af1dfa857bf1d8814fe1af8983c18080019922e557f15a8a...
You can compute other hashes using a similar pattern to the one shown above. For example, to compute SHA512 hashes, you would use MessageDigest.getInstance("SHA-512")
.
Note that if you need cryptographically secure hashes, you should carefully research hash strength!