推荐阅读:

浅析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手机卫士保存密码时进行md5加密的相关知识,希望对大家有所帮助!

更多相关文章

  1. 三层缓存机制-新知识点,Android常见的内存缓存算法(LruCache原理
  2. 关于android读取用户号码,手机串号,SIM卡序列号
  3. 李开复解读Gphone Android和手机联盟
  4. android 手机存储介质大全
  5. Android 使用decodeFile方法加载手机磁盘中的图片文件
  6. Android 跳转Activity并通过Bundle对象传递数据
  7. Android 手机验证码输入框
  8. Android 手机状态
  9. android Activity启动初始化与实例化Activty对象的用途研究

随机推荐

  1. Android(安卓)ServiceConnection
  2. AndroidStudio CMakeList的总结
  3. Android(安卓)ContentProvider学习
  4. linearlayout总结
  5. Kotlin基本熟悉
  6. 开发者选项中动画时长原理分析(Android(
  7. Android存储访问错误 open failed: EACCE
  8. Android开源项目第二篇——开发工具库篇
  9. Android一年工作经验应掌握的知识点
  10. 探究Android(安卓)View 绘制流程,Canvas