没有加盐的写法
import java.security.MessageDigest;
public class Md5Utils {
public static void main(String[] args) {
toMd5("hhhhh");
}
public static void toMd5(String origin) {
try {
//SHA 20位,MD5 16位
MessageDigest digest = MessageDigest.getInstance("MD5");
byte[] result = digest.digest(origin.getBytes());
String md5 = toHex(result);
System.out.println(md5);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
private static String toHex(byte[] result) {
if(null==result){
return null;
}
StringBuilder sb = new StringBuilder();
for(int i=0;i<result.length;i++){
//高4比特位
int high =result[i]>>4&0x0f ;
//低4比特位
int low = result[i]&0x0f;
sb.append(Character.forDigit(high, 16)).append(Character.forDigit(low, 16));
}
return sb.toString();
}
}
加盐:
import java.security.MessageDigest;
public class Md5Utils {
public static void main(String[] args) {
toMd5("hhhhh","123");
}
public static void toMd5(String origin,String salt) {
try {
//SHA 20位,MD5 16位
MessageDigest digest = MessageDigest.getInstance("MD5");
byte[] result = digest.digest((origin+salt).getBytes());
String md5 = toHex(result);
System.out.println(md5);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
private static String toHex(byte[] result) {
if(null==result){
return null;
}
StringBuilder sb = new StringBuilder();
for(int i=0;i<result.length;i++){
int high =result[i]>>4&0x0f ;
int low = result[i]&0x0f;
sb.append(Character.forDigit(high, 16)).append(Character.forDigit(low, 16));
}
return sb.toString();
}
}