Java tutorial
/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package com.arwantech.docjavaui.utils; import java.io.UnsupportedEncodingException; import java.security.InvalidKeyException; import java.security.spec.KeySpec; import javax.crypto.BadPaddingException; import javax.crypto.Cipher; import javax.crypto.IllegalBlockSizeException; import javax.crypto.SecretKey; import javax.crypto.SecretKeyFactory; import javax.crypto.spec.DESedeKeySpec; import org.apache.commons.codec.binary.Base64; /** * * @author Kicky */ public class TripleDES { private static final String UNICODE_FORMAT = "UTF8"; public static final String DESEDE_ENCRYPTION_SCHEME = "DESede"; private final KeySpec ks; private final SecretKeyFactory skf; private final Cipher cipher; byte[] arrayBytes; private final String myEncryptionKey; private final String myEncryptionScheme; SecretKey key; public TripleDES(String secretKey) throws Exception { myEncryptionKey = secretKey; myEncryptionScheme = DESEDE_ENCRYPTION_SCHEME; arrayBytes = myEncryptionKey.getBytes(UNICODE_FORMAT); ks = new DESedeKeySpec(arrayBytes); skf = SecretKeyFactory.getInstance(myEncryptionScheme); cipher = Cipher.getInstance(myEncryptionScheme); key = skf.generateSecret(ks); } public String encrypt(String unencryptedString) { String encryptedString = null; try { cipher.init(Cipher.ENCRYPT_MODE, key); byte[] plainText = unencryptedString.getBytes(UNICODE_FORMAT); byte[] encryptedText = cipher.doFinal(plainText); encryptedString = new String(Base64.encodeBase64(encryptedText)); } catch (InvalidKeyException | UnsupportedEncodingException | IllegalBlockSizeException | BadPaddingException e) { e.printStackTrace(); } return encryptedString; } public String decrypt(String encryptedString) { String decryptedText = null; try { cipher.init(Cipher.DECRYPT_MODE, key); byte[] encryptedText = Base64.decodeBase64(encryptedString.getBytes()); byte[] plainText = cipher.doFinal(encryptedText); decryptedText = new String(plainText); } catch (InvalidKeyException | IllegalBlockSizeException | BadPaddingException e) { e.printStackTrace(); decryptedText = "Error decrypts"; } finally { return decryptedText; } } }