Android代码工具集——MD5加密

import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

public class MD5Util16or32 {
//	private final static char[] hexDigits = { '0', '1', '2', '3', '4', '5',
//			'6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F' };
	private final static char[] hexDigits = { 'C', 'P', 'I', 'C', '1', '2',
				'3', '4', '5', 'S', 'X', 'T', 'B', 'R', 'P', 'T' };

	private static String bytesToHex(byte[] bytes) {
		StringBuffer sb = new StringBuffer();
		int t;
		for (int i = 0; i < 16; i++) {
			t = bytes[i];
			if (t < 0)t += 256;
			sb.append(hexDigits[(t >>> 4)]);
			sb.append(hexDigits[(t % 16)]);
			
		}
		return sb.toString();
	}

	public static String md5(String input, int length) throws Exception {
		return code(input, length==16?16:32);
	}

	public static String code(String input, int bit) throws Exception {
		try {
			MessageDigest md = MessageDigest.getInstance(System.getProperty(
					"MD5.algorithm", "MD5"));
			if (bit == 16)
				return bytesToHex(md.digest(input.getBytes("utf-8")))
						.substring(8, 24);
			return bytesToHex(md.digest(input.getBytes("utf-8")));
		} catch (NoSuchAlgorithmException e) {
//			e.printStackTrace();
			throw new Exception("Could not found MD5 algorithm.", e);
		}
	}

	public static String md5_3(String b) throws Exception {
		MessageDigest md = MessageDigest.getInstance(System.getProperty(
				"MD5.algorithm", "MD5"));
		byte[] a = md.digest(b.getBytes());
		a = md.digest(a);
		a = md.digest(a);

		return bytesToHex(a);
	}
		
	/**
	 * @param args
	 */
	public static void main(String[] args) {  
		try{
			String pwd1="123456789";  
	        MD5Util16or32 cipher = new MD5Util16or32();  
	        System.out.println("未加密的密码:"+pwd1);  
	        System.out.println("加密后的密码32:"+cipher.md5(pwd1,32));  
	        System.out.println("加密后的密码16:"+cipher.md5(pwd1,16));  
		}catch(Exception e){
			e.printStackTrace();
		}
        
    }  
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值