DES Encryption and Decryption



import java.security.spec.KeySpec;
import javax.crypto.Cipher;
import javax.crypto.SecretKey;
import javax.crypto.SecretKeyFactory;
import javax.crypto.spec.DESedeKeySpec;
import org.apache.commons.codec.binary.Base64;

public class EncryptDES {
private static final String UNICODE_FORMAT = "UTF8";
public static final String DESEDE_ENCRYPTION_SCHEME = "DESede";
private KeySpec ks;
private SecretKeyFactory skf;
private Cipher cipher;
byte[] arrayBytes;
SecretKey key;

public EncryptDES() {
try {
String myEncryptionKey = "ThisIsAEncryptionPublicKey";
byte[] arrayBytes = myEncryptionKey.getBytes(UNICODE_FORMAT);
ks = new DESedeKeySpec(arrayBytes);
skf = SecretKeyFactory.getInstance(DESEDE_ENCRYPTION_SCHEME);
cipher = Cipher.getInstance(DESEDE_ENCRYPTION_SCHEME);
key = skf.generateSecret(ks);

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

public String encrypt(String unencryptedString) {
String encryptedString = null;
String prefix = "ACZAIDMBER";
try {
cipher.init(Cipher.ENCRYPT_MODE, key);
String passKey = prefix + unencryptedString.trim();
byte[] plainText = passKey.getBytes(UNICODE_FORMAT);
byte[] encryptedText = cipher.doFinal(plainText);
encryptedString = new String(Base64.encodeBase64(encryptedText));
} catch (Exception 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);
byte[] plainText = cipher.doFinal(encryptedText);
decryptedText = new String(plainText);
} catch (Exception e) {
e.printStackTrace();
}
return decryptedText;
}

public static void main(String args[]) throws Exception {
EncryptDES td = new EncryptDES();
String[] target = { "pass1234", "shwetali@123", "khambe@345",
"shwetali@903" };
for (String a : target) {
String encrypted = td.encrypt(a);
System.out.print(a + ": ");
System.out.println(encrypted);
}
}
}

Comments