java md5加盐加密
时间: 2023-09-03 20:12:06 浏览: 51
MD5加盐加密可以增加密码的安全性,下面是Java代码示例:
```java
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.security.SecureRandom;
public class MD5SaltDemo {
public static void main(String[] args) {
String password = "123456";
String salt = getSalt();
String hashedPassword = getMD5Hash(password + salt);
System.out.println("Hashed password: " + hashedPassword);
}
private static String getMD5Hash(String input) {
MessageDigest md = null;
try {
md = MessageDigest.getInstance("MD5");
byte[] bytes = md.digest(input.getBytes());
StringBuilder sb = new StringBuilder();
for (byte b : bytes) {
sb.append(Integer.toHexString((b & 0xFF) | 0x100).substring(1, 3));
}
return sb.toString();
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
return null;
}
}
private static String getSalt() {
SecureRandom random = new SecureRandom();
byte[] saltBytes = new byte[16];
random.nextBytes(saltBytes);
StringBuilder sb = new StringBuilder();
for (byte b : saltBytes) {
sb.append(String.format("%02x", b));
}
return sb.toString();
}
}
```
首先,我们通过`getSalt()`方法生成一个随机的盐值,并将其与原始密码拼接起来,然后将拼接后的字符串作为输入,通过`getMD5Hash()`方法得到MD5散列值。最终的哈希密码就是原始密码和盐值的组合。