zoukankan      html  css  js  c++  java
  • JAVA MD5加密

    package com.demo;
    
    import java.security.MessageDigest;
    
    public class MD5Util {
    
    	private static final String ALGORITHM = "MD5";
    
    	private static final char[] HEX_DIGITS = { '0', '1', '2', '3', '4', '5',
    			'6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f' };
    
    	/**
    	 * encode string
    	 *
    	 * @param algorithm
    	 * @param str
    	 * @return String
    	 */
    	public static String encode(String algorithm, String str) {
    		if (str == null) {
    			return null;
    		}
    		try {
    			MessageDigest messageDigest = MessageDigest.getInstance(algorithm);
    			messageDigest.update(str.getBytes());
    			return getFormattedText(messageDigest.digest());
    		} catch (Exception e) {
    			throw new RuntimeException(e);
    		}
    
    	}
    
    	/**
    	 * encode By MD5
    	 *
    	 * @param str
    	 * @return String
    	 */
    	public static String getStringMD5String(String str) {
    		if (str == null) {
    			return null;
    		}
    		try {
    			MessageDigest messageDigest = MessageDigest.getInstance(ALGORITHM);
    			messageDigest.update(str.getBytes());
    			return getFormattedText(messageDigest.digest());
    		} catch (Exception e) {
    			throw new RuntimeException(e);
    		}
    
    	}
    
    	/**
    	 * Takes the raw bytes from the digest and formats them correct.
    	 *
    	 * @param bytes
    	 *            the raw bytes from the digest.
    	 * @return the formatted bytes.
    	 */
    	private static String getFormattedText(byte[] bytes) {
    		int len = bytes.length;
    		StringBuilder buf = new StringBuilder(len * 2);
    		// 把密文转换成十六进制的字符串形式
    		for (int j = 0; j < len; j++) { 			
    			buf.append(HEX_DIGITS[(bytes[j] >> 4) & 0x0f]);
    			buf.append(HEX_DIGITS[bytes[j] & 0x0f]);
    		}
    		return buf.toString();
    	}
    
    	public static void main(String[] args) {
    		System.out.println(MD5Util.getStringMD5String("123"));
    //		System.out.println("111111 MD5  :"
    //				+ EncoderHandler.encode("MD5", "111111"));
    //		System.out.println("111111 SHA1 :"
    //				+ EncoderHandler.encode("SHA1", "111111"));
    	}
    
    }
    
  • 相关阅读:
    Save a bricked Samsung Note 3 and do extraction
    Use EnCase to acquire data from a smartphone
    Android手机与计算机间的”信任关系”
    iPhone 6 (iOS 9.2) extractiion failed by XRY
    No deleted LINE chat messages recovered on iOS 9.1 after UFED extraction
    Find out who the “mole” is?
    Recover deleted pictures in iOS 9
    工厂模式
    教练和运动员案例
    本地网络共享
  • 原文地址:https://www.cnblogs.com/zhangfei/p/4517192.html
Copyright © 2011-2022 走看看