/** * */ package com.connsec.crypto; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; /** * @author Crystal.Sea * * algorithm Support MD5,SHA,SHA-1|SHA-256|SHA-384|SHA-512 then encodeBase64 * */ public final class DigestUtils { public final class Algorithm { public static final String MD5 = "MD5"; public static final String SHA = "SHA"; public static final String SHA1 = "SHA-1"; public static final String SHA256 = "SHA-256"; public static final String SHA384 = "SHA-384"; public static final String SHA512 = "SHA-512"; public static final String Base64 = "Base64"; } /** * @param simple * @param algorithm MD5,SHA,SHA-1|SHA-256|SHA-384|SHA-512 then encodeBase64 * @return cipher */ public static String digestBase64(String simple,String algorithm) { MessageDigest messageDigest; String cipherBASE64=""; try { messageDigest = MessageDigest.getInstance(algorithm.toUpperCase()); messageDigest.update(simple.getBytes()); byte[] bCipher=messageDigest.digest(); cipherBASE64=Base64Utils.encodeBase64(bCipher); } catch (NoSuchAlgorithmException e) { e.printStackTrace(); } return cipherBASE64; } //B64 public static String md5B64(String simple) { return digestBase64(simple,Algorithm.MD5); } public static String shaB64(String simple) { return digestBase64(simple,Algorithm.SHA); } public static String sha1B64(String simple) { return digestBase64(simple,Algorithm.SHA1); } public static String sha256B64(String simple) { return digestBase64(simple,Algorithm.SHA256); } public static String sha384B64(String simple) { return digestBase64(simple,Algorithm.SHA384); } public static String sha512B64(String simple) { return digestBase64(simple,Algorithm.SHA512); } /** * @param simple * @param algorithm MD5,SHA,SHA-1|SHA-256|SHA-384|SHA-512 then encodeHexString * @return cipher */ public static String digestHex(String simple,String algorithm) { MessageDigest messageDigest; String cipherHex=""; try { messageDigest = MessageDigest.getInstance(algorithm.toUpperCase()); messageDigest.update(simple.getBytes()); byte[] bCipher=messageDigest.digest(); cipherHex=HexUtils.bytes2HexString(bCipher); } catch (NoSuchAlgorithmException e) { e.printStackTrace(); } return cipherHex; } //HEX public static String md5Hex(String simple) { return digestHex(simple,Algorithm.MD5); } public static String shaHex(String simple) { return digestHex(simple,Algorithm.SHA); } public static String sha1Hex(String simple) { return digestHex(simple,Algorithm.SHA1); } public static String sha256Hex(String simple) { return digestHex(simple,Algorithm.SHA256); } public static String sha384Hex(String simple) { return digestHex(simple,Algorithm.SHA384); } public static String sha512Hex(String simple) { return digestHex(simple,Algorithm.SHA512); } }