admin管理员组文章数量:1516870
/**
* 对密码进行加密和验证的程序
* @author guoh
*
*/
public class Md5 {
privatefinal static String[] hexDigits = {"0" ,"1", "2","3", "4", "5", "6", "7","8", "9", "a" ,"b", "c","d", "e", "f"};
/**
* 把inputString加密
* @param inputSring
* @return
*/
publicstatic String createPassword(String inputSring){
returnencodeByMD5(inputSring);
}
/**
* 对字符串进行Md5进行编码
* @param originString
* @return
*/
publicstatic String encodeByMD5(String originString){
if(originString!= null){
try{
MessageDigestmd = MessageDigest.getInstance("MD5");
byte[]results = md.digest(originString.getBytes());
StringresultString = byteArrayToHexString(results);
returnresultString.toUpperCase();
}catch (NoSuchAlgorithmException e) {
//TODO Auto-generated catch block
e.printStackTrace();
}
}
returnnull;
}
/**
* 转换字节数组为十六进制形式的字符串
* @param str
* @return
*/
publicstatic String byteArrayToHexString(byte[] str){
StringBufferresultSb = new StringBuffer();
for(int i = 0; i < str.length; i++) {
resultSb.append(byteToHexString(str[i]));
}
returnresultSb.toString();
}
/**
* 将一个字节转换成十六进制形式的字符串
* @param b
* @return
*/
publicstatic String byteToHexString(byte b){
intn = b;
if(n< 0) n = 256 + n;
intd1 = n / 16;
intd2 = n % 16;
returnhexDigits[d1] +hexDigits[d2];
}
/**
* 验证输入的密码是否正确
* @param password
* @param inputString
* @return
*/
publicstatic boolean authenticatePassword(String password,String inputString){
if(password.equals(encodeByMD5(inputString))){
returntrue;
}else{
returnfalse;
}
}
publicstatic void main(String[] args) {
Stringpassword =Md5.createPassword("888888");
System.out.println("对888888用MD5加密之后的字符串:"+password);
StringinputString = "8888";
System.out.println("8888与 密码匹配?"+Md5.authenticatePassword(password, inputString));
inputString= "888888";
System.out.println("888888与密码匹配?"+Md5.authenticatePassword(password, inputString));
}
}
版权声明:本文标题:揭秘MD5:如何用它为你的密码加密加把锁? 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.betaflare.com/biancheng/1771136484a3262148.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。


发表评论