发布时间:2018-03-25作者:laosun阅读(1862)
java.security.MessageDigest 类为应用程序提供信息摘要算法的功能,如 MD5 、SHA1、 SHA256、SHA384、SHA512算法。信息摘要是安全的单向哈希函数,它接收任意大小的数据,并输出固定长度的哈希值。
import java.security.MessageDigest; public class EncryptionUtils { public static String md5Encrypt(String srcStr) { return encrypt("MD5", srcStr); } public static String sha1Encrypt(String srcStr) { return encrypt("SHA-1", srcStr); } public static String sha256Encrypt(String srcStr) { return encrypt("SHA-256", srcStr); } public static String sha384Encrypt(String srcStr) { return encrypt("SHA-384", srcStr); } public static String sha512Encrypt(String srcStr) { return encrypt("SHA-512", srcStr); } public static String encrypt(String algorithm, String srcStr) { try { StringBuilder result = new StringBuilder(); MessageDigest md = MessageDigest.getInstance(algorithm); byte[] bytes = md.digest(srcStr.getBytes("utf-8")); for (byte b : bytes) { String hex = Integer.toHexString(b & 0xFF); if (hex.length() == 1) result.append("0"); result.append(hex); } return result.toString(); } catch (Exception e) { throw new RuntimeException(e); } } public static void main(String[] args) { String str = "111111"; System.out.println(md5Encrypt(str)); System.out.println(sha1Encrypt(str)); System.out.println(sha256Encrypt(str)); System.out.println(sha384Encrypt(str)); System.out.println(sha512Encrypt(str)); // 打印结果: // 96e79218965eb72c92a549dd5a330112 // 3d4f2bf07dc1be38b20cd6e46949a1071f9d0e3d // bcb15f821479b4d5772bd0ca866c00ad5f926e3580720659cc80d39c9d09802a // 1b0268a40ae44c012946c974d60bf5291e7bb7c63cdb72a904d9283e3dc0a34de9afebe4035665768aaa503a4e7a30c3 // b0412597dcea813655574dc54a5b74967cf85317f0332a2591be7953a016f8de56200eb37d5ba593b1e4aa27cea5ca27100f94dccd5b04bae5cadd4454dba67d } }
版权属于: 技术客
原文地址: https://www.sunjs.com/article/detail/24f01608eb0941d084d5301f427c3016.html
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。