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程序设计有所帮助。