import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; /** * 加密工具类 * Created by Administrator on 2015/10/21 0021. */ public class EncryptUtils { /** * 字符串加密使用MD5算法 */ public final static String encryptMD5(String source) { if (source == null) { source = ""; } String result = ""; try { result = encrypt(source, "MD5"); } catch (NoSuchAlgorithmException ex) { // 一般不会发生 throw new RuntimeException(ex); } return result.toLowerCase(); } /** * 字符串加密使用SHA算法 */ public final static String encryptSHA(String source) { if (source == null) { source = ""; } String result = ""; try { result = encrypt(source, "SHA"); } catch (NoSuchAlgorithmException ex) { // 一般不会发生 throw new RuntimeException(ex); } return result; } /** * 字符串加密 */ private final static String encrypt(String source, String algorithm) throws NoSuchAlgorithmException { byte[] resByteArray = encrypt(source.getBytes(), algorithm); return toHexString(resByteArray); } /** * 字节数组加密 */ private final static byte[] encrypt(byte[] source, String algorithm) throws NoSuchAlgorithmException { MessageDigest md = MessageDigest.getInstance(algorithm); md.reset(); md.update(source); return md.digest(); } /** * 从字节数组获取十六进制字符串 */ private final static String toHexString(byte[] res) { StringBuffer sb = new StringBuffer(res.length << 1); for (int i = 0; i < res.length; i++) { String digit = Integer.toHexString(0xFF & res[i]); if (digit.length() == 1) { digit = ‘0‘ + digit; } sb.append(digit); } return sb.toString().toUpperCase(); } }
时间: 2024-10-08 03:48:50