MD5加密

我们都知道在登录账号密码的时候用户输入的密码一般也就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";//加密钥匙







  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值