推荐阅读:

浅析Android手机卫士自定义控件的属性

浅析Android手机卫士关闭自动更新

详解Android 手机卫士设置向导页面

一般的手机没有root权限,进不去data/data目录,当手机刷机了后,拥有root权限,就可以进入data/data目录,查看我们保存的密码文件,因此我们需要对存入的密码进行MD5加密

获取MessageDigest信息摘要器对象,调用MessageDigest.getInstance(“md5”),参数:规则

调用MessageDigest对象的digest(bytes)方法,得到加密的byte[] 数组,参数:byte[] 数组,调用String对象的getBytes()方法获取到字节数组

用每一个byte去和11111111八个二进制位做与运算并且得到的是int类型:byte & 11111111

for(byte b : xxxxx) 循环中

运行 byte & 0xff得到 int值

调用Integer.toHexString(number),得到16进制并返回String类型

判断String的长度是1的,在它的前面拼接上0

循环外面定义一个StringBuffer对象,调用StringBuffer对象的append()拼接起来字符串

调用StringBuffer对象的toString()方法,得到加密后的标准字符串结果

MD5可以被破解,包括md5(md5(md5()))这种形式,对所有可能性进行加密存入数据库,然后与你的md5密码比对,可以进行md5加盐

软件需要先卸载再测试,清除掉之前保存的sp文件

package com.qingguow.mobilesafe.utils;import java.security.MessageDigest;public class Md5Util {/*** 获取MD5加密字符串* @param pass* @return*/public static String md5Password(String pass){MessageDigest messageDigest;try {messageDigest = MessageDigest.getInstance("md5");byte[] bytes=messageDigest.digest(pass.getBytes());StringBuffer sb=new StringBuffer();for(byte b:bytes){int number=b & 0xff;String str=Integer.toHexString(number);if(str.length()==1){sb.append("0");}sb.append(str);}return sb.toString();} catch (Exception e) {e.printStackTrace();}return "";}}

以上内容是小编给大家介绍的Android手机卫士保存密码时进行md5加密的相关知识,希望对大家有所帮助!

更多相关文章

  1. Android(安卓)js交互 与 Html启动App
  2. Android(安卓)RTC 自下而上分析
  3. Android中程序与Service交互的方式——总结
  4. AsyncTask异步执行
  5. android 消息机制(2)
  6. Android(安卓)之 Bluetooth
  7. Android的webview研究
  8. Android(安卓)AsyncTask介绍
  9. Android使用Parcelable传递对象方法及注意事项

随机推荐

  1. 意派Epub360丨圣诞小游戏H5模板——抓住
  2. mongoDb入门并整合springboot
  3. 通过类名获取所有元素的方法
  4. MySQL初学者可以告别分组聚合查询的困扰
  5. MySQL系列关于NUll值的经验总结分析教程
  6. MySQL几种更新操作的案例分析
  7. MySQL教程子查询示例详解
  8. MySQL数据分析存储引擎示例讲解
  9. MySQL系列数据库设计三范式教程示例
  10. 详细聊聊MySQL中的LIMIT语句