JAVA实现MD5算法、SHA1算法和SHA256算法
MD5、SHA1和SHA256是最常见的哈希算法。JAVA中的hashCode是int类型的,占64位。
MD5是128位的哈希码计算算法;
SHA1是160位的哈希码计算算法;
SHA256是256位的哈希码计算算法。
MD5计算hashCode
package utils;
import org.junit.Test;
import java.security.MessageDigest;
public class MD5Utils {
public static String md5Code(String input) {
try {
MessageDigest digest = MessageDigest.getInstance("MD5");
byte[] hash = digest.digest(input.getBytes("UTF-8"));
StringBuilder hexString = new StringBuilder();
for (int i = 0; i < hash.length; i++) {
String hex = Integer.toHexString(0xff & hash[i]);
if (hex.length() == 1) hexString.append('0');
hexString.append(hex);
}
return hexString.toString();
} catch (Exception e) {
throw new RuntimeException(e);
}
}
@Test
public void test() {
String str = "Welcome";
String res = md5Code(str);
System.out.println(res);
}
}
SHA1计算hashCode
package utils;
import org.junit.Test;
import java.security.MessageDigest;
public class SHA1Utils {
public static String sha1Code(String input) {
try {
MessageDigest digest = MessageDigest.getInstance("SHA1");
byte[] hash = digest.digest(input.getBytes("UTF-8"));
StringBuilder hexString = new StringBuilder();
for (int i = 0; i < hash.length; i++) {
String hex = Integer.toHexString(0xff & hash[i]);
if (hex.length() == 1) hexString.append('0');
hexString.append(hex);
}
return hexString.toString();
} catch (Exception e) {
throw new RuntimeException(e);
}
}
@Test
public void test() {
String str = "Welcome";
String res = sha1Code(str);
System.out.println(res);
}
}
SHA256计算hashCode
package utils;
import org.junit.Test;
import java.security.MessageDigest;
public class SHA256Utils {
public static String sha256Code(String input) {
try {
MessageDigest digest = MessageDigest.getInstance("SHA-256");
byte[] hash = digest.digest(input.getBytes("UTF-8"));
StringBuffer hexString = new StringBuffer();
for (int i = 0; i < hash.length; i++) {
String hex = Integer.toHexString(0xff & hash[i]);
if (hex.length() == 1) hexString.append('0');
hexString.append(hex);
}
return hexString.toString();
} catch (Exception e) {
throw new RuntimeException(e);
}
}
@Test
public void test() {
String value = "Welcome";
String res = sha256Code(value);
System.out.println(res);
}
}