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")); } }
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!