class EncryptDecrypt {
static String encrypt(String value) {
try {
IvParameterSpec iv = new IvParameterSpec(Constants.Encryption.INIT_VECTOR.getBytes(StandardCharsets.UTF_8));
SecretKeySpec skeySpec = new
SecretKeySpec("PRIVATE_KEY_FOR_ENCRYPTION_OR_DECRYPTION"
.getBytes(StandardCharsets.UTF_8), "AES");
Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5PADDING");
cipher.init(Cipher.ENCRYPT_MODE, skeySpec, iv);
byte[] encrypted = cipher.doFinal(value.getBytes());
byte[] original = Base64.getEncoder().encode(encrypted);
return new String(original);
} catch (Exception ex) {
ex.printStackTrace();
}
return null;
}
static String decrypt(String encrypted) {
try {
IvParameterSpec iv = new IvParameterSpec(Constants.Encryption.INIT_VECTOR
.getBytes(StandardCharsets.UTF_8));
SecretKeySpec skeySpec = new SecretKeySpec("PRIVATE_KEY_FOR_ENCRYPTION_OR_DECRYPTION".
getBytes(StandardCharsets.UTF_8), "AES");
Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5PADDING");
cipher.init(Cipher.DECRYPT_MODE, skeySpec, iv);
byte[] original = cipher.doFinal(Base64.getDecoder().decode(encrypted));
return new String(original);
} catch (Exception ex) {
ex.printStackTrace();
}
return null;
}
package com.javacodegeeks.snippets.core;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.security.Security;
import java.security.spec.AlgorithmParameterSpec;
import javax.crypto.Cipher;
import javax.crypto.CipherInputStream;
import javax.crypto.CipherOutputStream;
import javax.crypto.KeyGenerator;
import javax.crypto.SecretKey;
import javax.crypto.spec.IvParameterSpec;
public class Main {
static Cipher ce;
static Cipher cd;
public static void main(String args[]) throws Exception {
Security.addProvider(new org.bouncycastle.jce.provider.BouncyCastleProvider());
SecretKey skey = KeyGenerator.getInstance("DES").generateKey();
byte[] initializationVector = new byte[]{0x10, 0x10, 0x01, 0x04, 0x01, 0x01, 0x01, 0x02};
AlgorithmParameterSpec algParameters = new IvParameterSpec(initializationVector);
ce = Cipher.getInstance("DES/CBC/PKCS5Padding");
cd = Cipher.getInstance("DES/CBC/PKCS5Padding");
ce.init(Cipher.ENCRYPT_MODE, skey, algParameters);
cd.init(Cipher.DECRYPT_MODE, skey, algParameters);
FileInputStream is = new FileInputStream("C:/Users/nikos7/Desktop/output.txt");
FileOutputStream os = new FileOutputStream("C:/Users/nikos7/Desktop/output2.txt");
int dataSize = is.available();
byte[] inbytes = new byte[dataSize];
is.read(inbytes);
String str2 = new String(inbytes);
System.out.println("Input file contentn" + str2 + "n");
write_encode(inbytes, os);
os.flush();
is.close();
os.close();
System.out.println("Ecrypted Content to output2.txtn");
is = new FileInputStream("C:/Users/nikos7/Desktop/output2.txt");
byte[] decBytes = new byte[dataSize];
read_decode(decBytes, is);
is.close();
String str = new String(decBytes);
System.out.println("Decrypted file contents:n" + str);
}
public static void write_encode(byte[] bytes, OutputStream output) throws Exception {
CipherOutputStream cOutputStream = new CipherOutputStream(output, ce);
cOutputStream.write(bytes, 0, bytes.length);
cOutputStream.close();
}
public static void read_decode(byte[] bytes, InputStream input) throws Exception {
CipherInputStream cInputStream = new CipherInputStream(input, cd);
int position = 0, i;
while ((i = cInputStream.read()) != -1) {
bytes[position] = (byte) i;
position++;
}
}
}