首页 > 代码库 > Android 手机卫士--md5加密过程

Android 手机卫士--md5加密过程

在之前的文章中,我们将用户的密码使用SharedPreferences存储,我们打开/data/data/com.wuyudong.mobilesafe/shared_prefs文件夹下的 config.xml 文件,导入到本地,查看内容:

<?xml version=‘1.0‘ encoding=‘utf-8‘ standalone=‘yes‘ ?><map>    <string name="mobile_safe_psd">123</string>    <boolean name="open_update" value="false" /></map>

密码居然使用的是明文,这样是非常不安全的。这里采用md5加密

本文地址:http://www.cnblogs.com/wuyudong/p/5941131.html,转载请注明出处。

编写Md5Util工具类,代码如下:

package com.wuyudong.mobilesafe.Utils;/** * Created by wuyudong on 2016/10/9. */import java.security.MessageDigest;import java.security.NoSuchAlgorithmException;public class Md5Util {    /**     * 给指定字符串按照md5算法去加密     *     * @param psd 需要加密的密码    加盐处理     * @return md5后的字符串     */    public static String encoder(String psd) {        try {            //加盐处理            psd = psd + "mobilesafe";            //1,指定加密算法类型            MessageDigest digest = MessageDigest.getInstance("MD5");            //2,将需要加密的字符串中转换成byte类型的数组,然后进行随机哈希过程            byte[] bs = digest.digest(psd.getBytes());       //3,循环遍历bs,然后让其生成32位字符串,固定写法            //4,拼接字符串过程            StringBuffer stringBuffer = new StringBuffer();            for (byte b : bs) {                int i = b & 0xff;                //int类型的i需要转换成16机制字符                String hexString = Integer.toHexString(i);                if (hexString.length() < 2) {                    hexString = "0" + hexString;                }                stringBuffer.append(hexString);            }            //5,打印测试            System.out.println(stringBuffer.toString());            return stringBuffer.toString();        } catch (NoSuchAlgorithmException e) {            e.printStackTrace();        }        return "";    }}

md5加密:将字符串转换成 32位的字符串(16进制字符(0~f)) 不可逆

例如:123加密后:202cb962ac59075b964b07152d234b70

Android 手机卫士--md5加密过程