SHA-512 hashing with Android
10,808
Solution 1
The other questions you saw use salt so just don't use salt like so:
MessageDigest md = MessageDigest.getInstance("SHA-512");
byte[] digest = md.digest("Hello, world!".getBytes());
StringBuilder sb = new StringBuilder();
for (int i = 0; i < digest.length; i++) {
sb.append(Integer.toString((digest[i] & 0xff) + 0x100, 16).substring(1));
}
System.out.println(sb);
Based on this answer.
Solution 2
Keds example is right, but .length will always be biger than 32, (127) so more correct answer should be
private fun getSHA512(input:String):String{
val md: MessageDigest = MessageDigest.getInstance("SHA-512")
val messageDigest = md.digest(input.toByteArray())
// Convert byte array into signum representation
val no = BigInteger(1, messageDigest)
// Convert message digest into hex value
var hashtext: String = no.toString(16)
// Add preceding 0s to make it 128 chars long
while (hashtext.length < 128) {
hashtext = "0$hashtext"
}
// return the HashText
return hashtext
}
Solution 3
method for calculating sha-512 in kotlin
fun getSHA512(input:String):String{
val md: MessageDigest = MessageDigest.getInstance("SHA-512")
val messageDigest = md.digest(input.toByteArray())
// Convert byte array into signum representation
val no = BigInteger(1, messageDigest)
// Convert message digest into hex value
var hashtext: String = no.toString(16)
// Add preceding 0s to make it 32 bit
while (hashtext.length < 32) {
hashtext = "0$hashtext"
}
// return the HashText
return hashtext
}
Author by
Admin
Updated on June 07, 2022Comments
-
Admin almost 2 years
I was wondering if I can SHA-512 hash a string on Android Studio without a salt.
I've seen other questions, but they all involve the
salt
, but I want something like this:TestBox.text = sha512("Hello, world!");
And
TextBox
will readc1527cd893c124773d811911970c8fe6e857d6df5dc9226bd8a160614c0cd963a4ddea2b94bb7d36021ef9d865d5cea294a82dd49a0bb269f51f6e7a57f79421
;