Android(安卓)MD5加密算法
16lz
2022-01-16
Android MD5加密算与J2SE平台一模一样,因为Android 平台支持java.security.MessageDigest这个包。实际上与J2SE平台一模一样。
算法签名:
[java] view plain copy- StringgetMD5(Stringval)throwsNoSuchAlgorithmException
[java] view plain copy
- 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();
- }
更多相关文章
- Android(安卓)国际化,文本国际化,图片国际化
- Android(安卓)布局之LinearLayout
- EditText属性解释
- EditText 属性
- Android进入应用下载评分界面
- EditText属性解释
- android 开源 OCR 项目 及手写识别
- EditText属性
- android应用安全——数据安全