MD5加密工具类

时间:2022-07-25
本文章向大家介绍MD5加密工具类,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

MD加密是目前常用的密码加密方式,可以让你在APP中输入的密码不至于明文显示在后台的数据库,工具类使用方法如下 加密后的密文分大小写的。下面用的是大写的,你可以用String s = Md5Utils.MD5(“1234”); 然后可以日志或者控制台打印一下这个s 看一下加密之后的铭文。

Md5Utils.MD5();// 加密后为大写 Md5Utils.md5();// 加密后为小写

Md5Utils.MD5(Pwd)

工具类代码如下:

public class Md5Utils {

    /**
     * 将字符串转成MD5值
     *
     * @param string
     * @return
     */
    public static String md5(String string) {
        byte[] hash;

        try {
            hash = MessageDigest.getInstance("MD5").digest(string.getBytes("UTF-8"));
        } catch (NoSuchAlgorithmException e) {
            e.printStackTrace();
            return null;
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
            return null;
        }

        StringBuilder hex = new StringBuilder(hash.length * 2);
        for (byte b : hash) {
            if ((b & 0xFF) < 0x10)
                hex.append("0");
            hex.append(Integer.toHexString(b & 0xFF));
        }

        return hex.toString();
    }

    private static final char HEX_DIGITS[] = {'0', '1', '2', '3', '4', '5',
            '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'};

    public static String MD5(String s) {
        try {

            StringBuilder sb = new StringBuilder();
            byte[] data = s.getBytes("utf-8");
            MessageDigest MD5 = MessageDigest.getInstance("MD5");
            MD5.update(data);
            data = MD5.digest();
            for (int i = 0; i < data.length; i++) {
                sb.append(HEX_DIGITS[(data[i] & 0xf0) >> 4] + "" + HEX_DIGITS[data[i] & 0xf]);
            }

            return sb.toString();

        } catch (Exception e) {
            //CrashReport.postCatchedException(e);
            throw new RuntimeException(e);

        }
    }

}