Java编程下字符串的16位、32位MD5加密实现方法
MD5(Message-Digest Algorithm 5)是一种哈希算法,常用于确保文件完整性以及验证数据传输完整性。MD5加密后,得到的结果是一个128位(32个十六进制字符)的字符串,可以选择后16位或者后32位作为加密结果。在Java编程中,我们可以使用Java自带的MessageDigest类,来进行字符串的MD5加密和解密。
实现方法
以下是Java编程下字符串的16位、32位MD5加密实现方法:
1. 16位MD5加密
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
public class MD5Utils {
public static String encrypt16(String source) {
return encrypt32(source).substring(8, 24);
}
public static String encrypt32(String source) {
StringBuilder result = new StringBuilder();
try {
MessageDigest md = MessageDigest.getInstance("MD5");
md.update(source.getBytes());
byte[] bytes = md.digest();
for (byte b : bytes) {
String hex = Integer.toHexString(b & 0xff);
if (hex.length() == 1) {
result.append("0");
}
result.append(hex);
}
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
return result.toString();
}
}
2. 32位MD5加密
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
public class MD5Utils {
public static String encrypt32(String source) {
StringBuilder result = new StringBuilder();
try {
MessageDigest md = MessageDigest.getInstance("MD5");
md.update(source.getBytes());
byte[] bytes = md.digest();
for (byte b : bytes) {
String hex = Integer.toHexString(b & 0xff);
if (hex.length() == 1) {
result.append("0");
}
result.append(hex);
}
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
return result.toString();
}
}
示例说明
下面是针对以上代码的使用示例:
示例一:16位MD5加密
public class Main {
public static void main(String[] args) {
String source = "hello, md5!";
String encrypt16 = MD5Utils.encrypt16(source);
System.out.println("source: " + source + ", encrypt16: " + encrypt16);
}
}
输出结果:
source: hello, md5!, encrypt16: 2a9f1a8dce5080d2
示例二:32位MD5加密
public class Main {
public static void main(String[] args) {
String source = "hello, md5!";
String encrypt32 = MD5Utils.encrypt32(source);
System.out.println("source: " + source + ", encrypt32: " + encrypt32);
}
}
输出结果:
source: hello, md5!, encrypt32: c88dceb15553a851a7d1a5c8df6b20e0
总结
以上是Java编程下字符串的16位、32位MD5加密实现方法,可以通过调用相应的方法来实现字符串MD5加密。在实现过程中,主要通过Java自带的MessageDigest类来实现,以及通过转换字节数组和十六进制字符对字符串进行转换。实际开发中,需要根据实际需求选择相应的加密方法,并且需要注意加密结果的长度。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:java编程下字符串的16位,32位md5加密实现方法 - Python技术站