package String;
import java.security.MessageDigest;
/**
*
* @author 李林君
* @version 2013-6-15上午10:57:38
*/
public class StringDemo26 {
private final static String[] hexArray = { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9",
"a", "b", "c", "d", "e", "f" };
/**
* 根据指定的字符串,创建加密后的字符串
*/
public static String createEncryPassword(String string){
return encrypByMD5(string);
}
public static boolean verificationPassword(String password,String string){
if(password.equals(encrypByMD5(string))){
return true;
}else{
return false;
}
}
/**
* 对指定的字符串进行MD5加密
*/
private static String encrypByMD5(String originString){
if(originString !=null){
try {
//创建具有MD5算法的信息摘要
MessageDigest md=MessageDigest.getInstance("MD5");
//使用指定的字节数组对摘要进行最后的更新,更新完成摘要计算
byte[] results=md.digest(originString.getBytes());
//将得到的字节数组变成字符串返回
String resultString=byteArrayToHex(results);
return resultString.toUpperCase();
} catch (Exception e) {
e.printStackTrace();
}
}
return null;
}
/**
* 将字节数组转换成16进制,以字符串的形式返回
*/
private static String byteArrayToHex(byte[] b){
StringBuffer resultsb=new StringBuffer();
for (int i = 0; i < b.length; i++) {
resultsb.append(byteToHex(b[i]));
}
return resultsb.toString();
}
/**
* 将一个字节转换成16进制,并以字符串的形式返回
*/
private static String byteToHex(byte b){
int n=b;
if(n<0)
n=256+n;
int d1=n/16;
int d2=n%16;
return hexArray[d1]+hexArray[d2];
}
public static void main(String[] args){
String password=StringDemo26.createEncryPassword("haohaoxuexi1111");
System.out.println("对password进行MD5加密后的字符串如下:"+password);
String string="haohaoxuexi1111";
System.out.println("i是正确的密码吗?"+StringDemo26.verificationPassword(password, string));
string="ddfslfjds";
System.out.println("ddfslfjds 是正确的密码吗?"+StringDemo26.verificationPassword(password, string)
);
}
}
java MD5字符串加密
最新推荐文章于 2023-06-08 17:11:44 发布