1. 程式人生 > >JAVA SHA-1加密及DES加解密

JAVA SHA-1加密及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;
	}