Java的对称加密

Java的对称加密##

3DES加密

  public static void createToken(String src) {
	try {
		// 生成KEY
		KeyGenerator keyGenerator = KeyGenerator.getInstance("DESede");
		keyGenerator.init(new SecureRandom());
		SecretKey secretKey = keyGenerator.generateKey();
		byte[] bytesKey = secretKey.getEncoded();

		// KEY转换
		DESedeKeySpec deKey = new DESedeKeySpec(bytesKey);
		SecretKeyFactory factory = SecretKeyFactory.getInstance("DESede");
		SecretKey convertKey = factory.generateSecret(deKey);
		
		//加密
		Cipher cipher = Cipher.getInstance("DESede/ECB/PKCS5Padding");
		cipher.init(Cipher.ENCRYPT_MODE, convertKey);
		byte[] result = cipher.doFinal(src.getBytes());
		System.out.println(HexUtils.toHexString(result));

		//解密
		cipher.init(Cipher.DECRYPT_MODE, convertKey);
		byte[] results = cipher.doFinal(result);
		System.out.println(new String(results));

	} catch (Exception e) {
		e.printStackTrace();
	}
}

AES加密

	public static void crateAes(String src) {
		try {
			// 生成Key
			KeyGenerator keyGenerator = KeyGenerator.getInstance("AES");
			keyGenerator.init(128);
			SecretKey genKey = keyGenerator.generateKey();
			byte[] keyBytes = genKey.getEncoded();
		
		//转换key
		SecretKeySpec key = new SecretKeySpec(keyBytes, "AES");
		
		//加密
		Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding");
		cipher.init(Cipher.ENCRYPT_MODE, key);
		byte[] result = cipher.doFinal(src.getBytes());
		System.out.println("aes: "+ Base64Utils.encodeToString(result));
		
		//解密
		cipher.init(Cipher.DECRYPT_MODE, key);
		byte[] result2 = cipher.doFinal(result);
		System.out.println(new String(result2));
		
	} catch (Exception e) {
		e.printStackTrace();
	}
}
posted @ 2015-10-13 16:14  cirno_9  阅读(223)  评论(0)    收藏  举报