用Java实现Md5加密工具类

创建一个MD5的工具类,然后添加这个方法

    public static String getMD5(String value) throws NoSuchAlgorithmException {

            MessageDigest md5=MessageDigest.getInstance("MD5");

            // 对密码摘要后进行Base  64的转码,方便存储
           return Base64.encodeBase64String(md5.digest(value.getBytes()));

    }

紧接着我们可以先测试一波看看能否加密成功,测试代码为

    public static void main(String[] args) {
        String md5 = null;
        try {
            md5 = getMD5("1234");
        } catch (NoSuchAlgorithmException e) {
            e.printStackTrace();
        }
        System.out.println("md5 = " + md5);
    }

可以看到控制台输出:  gdyb21LQTcIANtvYMT7QVQ==          表示加密成功

但是这种方法也不安全,因此我们可以拿着这个密文去尝试一下解密

用Java实现Md5加密工具类_第1张图片

 可以看到我们的密文被反向查询到了,为了提高密码的安全性,我们可以使用加盐策略,即在我们在密码进行摘要时,传入我们自定义的盐值

    public static String getMD5(String value) throws NoSuchAlgorithmException {

            MessageDigest md5=MessageDigest.getInstance("MD5");

            // 对密码摘要后进行Base  64的转码,方便存储
           return Base64.encodeBase64String(md5.digest((value+"小黑孩666").getBytes()));

    }

原先是  md5.digest(value.getBytes())    

现在加入自定义盐值后为:  md5.digest((value+"小黑孩666").getBytes())

紧接着我们再进行测试得到密文为:t0GogEtYK8pMgSSjd/K9Sg==

拿着这个密文再去进行解密

用Java实现Md5加密工具类_第2张图片

 此时MD5加密工具类就完成了

你可能感兴趣的:(Java,springsecurity,java,开发语言,安全)