JAVA 字符串加密、密码加密实现方法
在我们的程序设计中,我们经常要加密一些特殊的内容,今天总结了几个简单的加密方法,分享给大家!
如何用JAVA实现字符串简单加密解密?为保证用户信息安全,系统在保存用户信息的时候,务必要将其密码加密保存到数据库。
需要使用密码的时候,取出数据,解密处理即可。
避免保存明文密码。
方案一:
packagecom.tnt.util;
importjava.security.MessageDigest;
publicclassStringUtil{
privatefinalstaticString[]hexDigits={"0","1","2","3","4","5",
"6","7","8","9","a","b","c","d","e","f"};
/**
*转换字节数组为16进制字串
*
*@paramb
*字节数组
*@return16进制字串
*/
publicstaticStringbyteArrayToHexString(byte[]b){
StringBufferresultSb=newStringBuffer();
for(inti=0;i<b.length;i++){
resultSb.append(byteToHexString(b[i]));
}
returnresultSb.toString();
}
privatestaticStringbyteToHexString(byteb){
intn=b;
if(n<0)
n=256+n;
intd1=n/16;
intd2=n%16;
returnhexDigits[d1]+hexDigits[d2];
}
publicstaticStringMD5Encode(Stringorigin){
StringresultString=null;
try{
resultString=newString(origin);
MessageDigestmd=MessageDigest.getInstance("MD5");
resultString=byteArrayToHexString(md.digest(resultString
.getBytes()));
}catch(Exceptionex){
}
returnresultString;
}
publicstaticvoidmain(String[]args){
System.err.println(MD5Encode("123456"));
}
}
方案二
packagecom.shangyu.core.utils;
publicclassMD5{
publicstaticStringgetMD5(byte[]source){
Strings=null;
charhexDigits[]={//用来将字节转换成16进制表示的字符
‘0‘,‘1‘,‘2‘,‘3‘,‘4‘,‘5‘,‘6‘,‘7‘,‘8‘,‘9‘,‘a‘,‘b‘,‘c‘,‘d‘,
‘e‘,‘f‘};
try{
java.security.MessageDigestmd=java.security.MessageDigest
.getInstance("MD5");
md.update(source);
bytetmp[]=md.digest();//MD5的计算结果是一个128位的长整数,
//用字节表示就是16个字节
charstr[]=newchar[16*2];//每个字节用16进制表示的话,使用两个字符,
//所以表示成16进制需要32个字符
intk=0;//表示转换结果中对应的字符位置
for(inti=0;i<16;i++){//从第一个字节开始,对MD5的每一个字节
//转换成16进制字符的转换
bytebyte0=tmp[i];//取第i个字节
str[k++]=hexDigits[byte0>>>4&0xf];//取字节中高4位的数字转换,
//>>>
//为逻辑右移,将符号位一起右移
str[k++]=hexDigits[byte0&0xf];//取字节中低4位的数字转换
}
s=newString(str);//换后的结果转换为字符串
}catch(Exceptione){
e.printStackTrace();
}
returns;
}
publicstaticStringgetMD5(Stringstr){
returngetMD5(str.getBytes());
}
publicstaticvoidmain(String[]args){
System.out.println(MD5.getMD5("123456"));
}
}
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!