Java加密部分内容

摘自:加密:DigestUtils与java MessageDigest
这篇文章也比较详细的讲解加盐密码了:加盐密码保存的最通用方法是?

DigestUtils & MessageDigest代码

@Test
void testEncoder() {
    String password = "abcdefg";
    // Spring自带的工具 org.springframework.util.DigestUtils
    String encodePassword = org.springframework.util.DigestUtils.md5DigestAsHex(password.getBytes());
    System.out.println(encodePassword);
    // org.apache.commons.codec.digest.DigestUtils
    encodePassword = DigestUtils.md5Hex(password);
    System.out.println("md5Hex:" + encodePassword);

    encodePassword = DigestUtils.sha256Hex(password);
    System.out.println("sha256Hex:" + encodePassword);

    encodePassword = DigestUtils.sha384Hex(password);
    System.out.println("sha384Hex:" + encodePassword);

    encodePassword = DigestUtils.sha512Hex(password);
    System.out.println("sha512Hex:" + encodePassword);
    // org.apache.commons.codec.binary.Base64
    byte[] b = Base64.encodeBase64(password.getBytes(), true);
    encodePassword = new String(b);
    System.out.println("Base64:" + encodePassword);
    b = Base64.decodeBase64(encodePassword);
    System.out.println("decodeBase64:" + new String(b));
    // java.security.MessageDigest
    try {
        MessageDigest digest = MessageDigest.getInstance("MD5");
        digest.update(password.getBytes());
        byte[] byteResult = digest.digest();
        encodePassword = convertbyte2String(byteResult);
        System.out.println("MessageDigest:" +encodePassword);

    } catch (NoSuchAlgorithmException e) {
        e.printStackTrace();
    }
}
private String convertbyte2String(byte[] byteResult)
{
    char[] hexDigits = {'0','1','2','3','4','5','6','7','8','9', 'A','B','C','D','E','F' };

    //4位代表一个16进制,所以长度需要变为原来2倍
    char[] result = new char[byteResult.length*2];

    int index = 0;
    for(byte b:byteResult)
    {
        //先转换高4位
        result[index++] = hexDigits[(b>>>4)& 0xf];
        result[index++] = hexDigits[b& 0xf];
    }
    return new String(result);
}

结果:

md5DigestAsHex:7ac66c0f148de9519b8bd264312c4d64
md5Hex:7ac66c0f148de9519b8bd264312c4d64
sha256Hex:7d1a54127b222502f5b79b5fb0803061152a44f92b37e23c6527baf665d4da9a
sha384Hex:9f11fc131123f844c1226f429b6a0a6af0525d9f40f056c7fc16cdf1b06bda08e302554417a59fa7dcf6247421959d22
sha512Hex:d716a4188569b68ab1b6dfac178e570114cdf0ea3a1cc0e31486c3e41241bc6a76424e8c37ab26f096fc85ef9886c8cb634187f4fddff645fb099f1ff54c6b8c
Base64:YWJjZGVmZw==

decodeBase64:abcdefg
MessageDigest:7AC66C0F148DE9519B8BD264312C4D64

结论以后再详细比价一下

posted @ 2020-10-20 17:39  wunai006  阅读(149)  评论(0)    收藏  举报