MD5加密

来源:互联网 发布:知乎南宋行政区划 编辑:程序博客网 时间:2024/06/06 17:43

我们都知道在登录账号密码的时候用户输入的密码一般也就6到8位,很容易被另有目的的黑客盗取,从而造成用户的损失。今天这篇文章讲的是MD5加密。

一.MD5低32位

public static String MD5Low32(String str) {try {MessageDigest md = MessageDigest.getInstance("MD5");try {md.update(str.getBytes("UTF8"));} catch (UnsupportedEncodingException e) {e.printStackTrace();}byte b[] = md.digest();int i;StringBuffer buf = new StringBuffer(200);for (int offset = 0; offset < b.length; offset++) {i = b[offset] & 0xff;if (i < 16)buf.append("0");buf.append(Integer.toHexString(i));}return buf.toString();} catch (NoSuchAlgorithmException e) {Logs.e(e.toString());return null;}}

.MD5高32位

public static String MD5Up32(String str) {return MD5Low32(str).toUpperCase(Locale.getDefault());}
.MD5高16位
public static String MD5Up16(String str) {return MD5Up32(str).substring(8, 24);}
.MD5低16位
public static String Md5Low16(String str) {return MD5Low32(str).substring(8, 24);}
五.项目实战

我将密码变成:(原密码+加密钥匙)先MD5加密得到的值key,再加上"###"再用MD5加密:MD5(key+"###")。

  private String getMd5(String pswStr) {        String key = Constant.key + pswStr;        key = MD5.MD5Low32(key);        key = "###" + MD5.MD5Low32(key);        try {            key = URLEncoder.encode(key, "utf-8");// URL编码            Logs.d(key);            // 它是一种编码类型。当URL地址里包含非西欧字符的字符串时,系统会将这些字符转换成application/x-www-form-urlencoded字符串。        } catch (UnsupportedEncodingException e) {            e.printStackTrace();        }        return key;    }
String pwStr:输入的原密码。

Constant.key工具类,可以自定义。比如我的就是个字符串:

 key = "5tZwmk3TIaJ4ELVHzN";//加密钥匙







原创粉丝点击