Android编程之MD5加密算法实例分析
本文实例分析了Android编程之MD5加密算法。分享给大家供大家参考,具体如下:
AndroidMD5加密算与J2SE平台一模一样,因为Android平台支持java.security.MessageDigest这个包。实际上与J2SE平台一模一样。
算法签名:
StringgetMD5(Stringval)throwsNoSuchAlgorithmException
输入一个String(需要加密的文本),得到一个加密输出String(加密后的文本)
packagecom.tencent.utils; importjava.security.MessageDigest; importjava.security.NoSuchAlgorithmException; /** *对外提供getMD5(String)方法 *@authorrandyjia * */ publicclassMD5{ publicstaticStringgetMD5(Stringval)throwsNoSuchAlgorithmException{ MessageDigestmd5=MessageDigest.getInstance("MD5"); md5.update(val.getBytes()); byte[]m=md5.digest();//加密 returngetString(m); } privatestaticStringgetString(byte[]b){ StringBuffersb=newStringBuffer(); for(inti=0;i<b.length;i++){ sb.append(b[i]); } returnsb.toString(); } }
结束
/* *MD5加密 */ privateStringgetMD5Str(Stringstr){ MessageDigestmessageDigest=null; try{ messageDigest=MessageDigest.getInstance("MD5"); messageDigest.reset(); messageDigest.update(str.getBytes("UTF-8")); }catch(NoSuchAlgorithmExceptione){ System.out.println("NoSuchAlgorithmExceptioncaught!"); System.exit(-1); }catch(UnsupportedEncodingExceptione){ e.printStackTrace(); } byte[]byteArray=messageDigest.digest(); StringBuffermd5StrBuff=newStringBuffer(); for(inti=0;i<byteArray.length;i++){ if(Integer.toHexString(0xFF&byteArray[i]).length()==1) md5StrBuff.append("0").append(Integer.toHexString(0xFF&byteArray[i])); else md5StrBuff.append(Integer.toHexString(0xFF&byteArray[i])); } //16位加密,从第9位到25位 returnmd5StrBuff.substring(8,24).toString().toUpperCase(); }
补充:AndroidMD5加密字符串示例
这里将字符串进行MD5加密,返回加密后的字符串(实际上是该字符串的报文摘要)。
publicstaticStringmd5(Stringstring){ byte[]hash; try{ hash=MessageDigest.getInstance("MD5").digest(string.getBytes("UTF-8")); }catch(NoSuchAlgorithmExceptione){ thrownewRuntimeException("Huh,MD5shouldbesupported?",e); }catch(UnsupportedEncodingExceptione){ thrownewRuntimeException("Huh,UTF-8shouldbesupported?",e); } StringBuilderhex=newStringBuilder(hash.length*2); for(byteb:hash){ if((b&0xFF)<0x10)hex.append("0"); hex.append(Integer.toHexString(b&0xFF)); } returnhex.toString(); }
希望本文所述对大家Android程序设计有所帮助。