BASE64、MD5、SHA1

BASE64
package base64;

import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;

public class BASE {
	/**
	 * BASE解密
	 * 
	 * @param key
	 * @return
	 * @throws Exception
	 */
	public static byte[] decryptBASE(String key) throws Exception {
		return (new BASE64Decoder()).decodeBuffer(key);
	}

	/**
	 * BASE加密
	 * 
	 * @param key
	 * @return
	 * @throws Exception
	 */
	public static String encryptBASE(byte[] key) throws Exception {
		return (new BASE64Encoder()).encodeBuffer(key);
	}

	public static void main(String[] args) {
		String str = "Hello world";
		try {
			String result = BASE.encryptBASE(str.getBytes());
			System.out.println("result-->加密数据:" + result);
			byte result1[] = BASE.decryptBASE(result);
			String str1 = new String(result1);
			System.out.println("str-->解密数据:" + str1);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}

MD5

package md5;

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

public class MD5Tool {

	public final static String MD5(String str) {
		char hexDigits[] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
				'A', 'B', 'C', 'D', 'E', 'F', };
		byte[] btInput = str.getBytes();
		try {
			// 获得MD5摘要算法的MessageDigest对象,提供信息摘要功能
			MessageDigest mdInst = MessageDigest.getInstance("MD5");
			// 使用输入的字节更新摘要
			mdInst.update(btInput);
			// 获得密文
			byte[] code = mdInst.digest();
			// 把密文转换成十六进制的字符串形式
			char strChar[] = new char[code.length * 2];
			int k = 0;
			for (int i = 0; i < code.length; i++) {
				byte byte1 = code[i];
				strChar[k++] = hexDigits[byte1 >>> 4 & 0xf];
				strChar[k++] = hexDigits[byte1 & 0xf];
			}
			return new String(strChar);
		} catch (NoSuchAlgorithmException e) {
			e.printStackTrace();
		}
		return null;
	}
	public static void main(String[] args) {
		System.out.println(MD5Tool.MD5("加密"));
		System.out.println(MD5Tool.MD5("加密"));
		System.out.println(MD5Tool.MD5("加密1"));
		System.out.println("---------------");
		System.out.println(MD5Tool.MD5("abcdefg"));
		System.out.println(MD5Tool.MD5("abcdefg"));
		System.out.println(MD5Tool.MD5("abcdefh"));
	}
}

SHA1

package sha;

import java.io.UnsupportedEncodingException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

public class SHA1 {
	
	public static String getSha1(String str){
	    if (null == str || 0 == str.length()){
	        return null;
	    }
	    char[] hexDigits = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 
	            'a', 'b', 'c', 'd', 'e', 'f'};
	    try {
	    	//得到SHA1的MessageDigest对象
	        MessageDigest mdTemp = MessageDigest.getInstance("SHA1");
	        // 使用输入的字节更新摘要
	        mdTemp.update(str.getBytes("UTF-8"));
	        //获得加密信息 
	        byte[] md = mdTemp.digest();
	        
	        int j = md.length;
	        char[] buf = new char[j * 2];
	        int k = 0;
	        //将字节转化为16进制
	        for (int i = 0; i < j; i++) {
	            byte byte0 = md[i];
	            // hexDigits[byte0 >>> 4 & 0xf] ,byte0无符右移4位,取与获得高四位(<=15),
	            buf[k++] = hexDigits[byte0 >>> 4 & 0xf]; 
	            //hexDigits[byte0 & 0xf]获取低四位,这也是char str[] = new char[j * 2];的原因,
	            buf[k++] = hexDigits[byte0 & 0xf];
	        }
	        return new String(buf);
	    } catch (NoSuchAlgorithmException e) {
	        e.printStackTrace();
	    } catch (UnsupportedEncodingException e) {
	        e.printStackTrace();
	    }
		return null;
	}
	
	public static void main(String[] args) {
		String string = "hello world";
		String enString = SHA1.getSha1(string);
		System.out.println(string+"加密->"+enString.toUpperCase());
	}
}


来自网络,方便以后查看

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值