JAVA SHA-1加密及DES加解密

1、SHA-1加密

SHA-1标准加密:
//SHA-1
	public static String getSha1(String str){
		if(str == null || str.length() == 0){
			return null;
		}
		char hexDigits[] = {'0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f'};
		
		try {
			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;
			for(int i =0;i<j;i++){
				byte byteO = md[i];
				buf[k++] = hexDigits[byteO >>> 4 & 0xf];
				buf[k++] = hexDigits[byteO & 0xf];
			}
			return new String(buf);
		} catch (NoSuchAlgorithmException e) {
			return null;
		} catch (UnsupportedEncodingException e) {
			return null;
		}
	}
SHA-1的160位算法
	public static String getSHA(String spara) {
		String sRtn = null;
		try {
			byte[] plainText = spara.getBytes("UTF8");

			// 使用getInstance("算法")来获得消息摘要,这里使用SHA-1的160位算法
			MessageDigest messageDigest = MessageDigest.getInstance("SHA-1");
			// 开始使用算法
			messageDigest.update(plainText);
			// 输出算法运算结果
			sRtn = new BASE64Encoder().encode(messageDigest.digest());
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return sRtn;
	}
明文:111111
测试结果:
3d4f2bf07dc1be38b20cd6e46949a1071f9d0e3d
PU8r8H3BvjiyDNbkaUmhBx+dDj0=

2.DES加密解密

	
	//获取秘钥
	public static SecretKey readKey(){
		
		try {
			String skey = "XXXXXXXXXXXXXXX";
			byte[] bs = skey.getBytes("UTF8");
		
			//创建DESKeySpec对象
			DESKeySpec dks = new DESKeySpec(bs);
			
			//转换DESKeySpec为SecretKey对象
			SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");
			SecretKey key = keyFactory.generateSecret(dks);
			
			return key;
		} catch (Exception e) {
			e.printStackTrace();
		}
		return null;
	}
	
	
	// 加密密码
	public static String enPass(String password){
		
		try {
			SecretKey key = readKey();
		
			Cipher cip = Cipher.getInstance("DES");
			cip.init(Cipher.ENCRYPT_MODE, key);
			byte[] cipBytes = cip.doFinal(password.getBytes());
			String sblob = new BASE64Encoder().encode(cipBytes);
			
			return sblob;
		} catch (Exception e) {
			e.printStackTrace();
		}
		
		return null;
	}
	
	//解密密码
	public static String dePass(String password){
		
		try {
			
			byte[] keyBuffer = new BASE64Decoder().decodeBuffer(password);
			
			SecretKey key = readKey();
			
			Cipher cip = Cipher.getInstance("DES");
			cip.init(Cipher.DECRYPT_MODE, key);
			
			String stmp =  new String(cip.doFinal(keyBuffer),"UTF8");
			
			return stmp;
			
		} catch (Exception e) {
			e.printStackTrace();
		}
		
		return null;
	}



猜你喜欢

转载自blog.csdn.net/cxh1299543968/article/details/51831114