<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>encryptionDemo</groupId>
<artifactId>encryptionDemo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<build>
<sourceDirectory>src</sourceDirectory>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>1.4</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.0.4</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.0.4</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>2.0.4</version>
</dependency>
</dependencies>
</project>
package com.ipiel.utils;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import com.fasterxml.jackson.core.JsonGenerationException;
import com.fasterxml.jackson.core.JsonParseException;
import com.fasterxml.jackson.databind.JsonMappingException;
import com.fasterxml.jackson.databind.ObjectMapper;
public class JSONUtils {
static ObjectMapper mapper = new ObjectMapper();
public static String toJSON(Object o) {
String result = "";
if (o != null) {
ByteArrayOutputStream out = new ByteArrayOutputStream();
try {
mapper.writeValue(out, o);
} catch (JsonGenerationException e) {
e.printStackTrace();
} catch (JsonMappingException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
try {
result = out.toString("UTF-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}
return result;
}
public staticT parseJSON(String jsonString, Class beanClass)
throws JsonParseException, JsonMappingException, IOException {
return mapper.readValue(jsonString, beanClass);
}
}
package com.ipiel.utils;
import java.beans.IntrospectionException;
import java.io.IOException;
import java.security.InvalidKeyException;
import javax.crypto.BadPaddingException;
import javax.crypto.Cipher;
import javax.crypto.IllegalBlockSizeException;
import javax.crypto.SecretKey;
import javax.crypto.SecretKeyFactory;
import javax.crypto.spec.DESKeySpec;
import org.apache.commons.codec.binary.Base64;
import com.ipiel.models.Address;
import com.ipiel.models.Student;
public class IpielContextParser {
Cipher cipher;
SecretKey myDesKey;
public IpielContextParser(String secretkey) {
try {
DESKeySpec dks = new DESKeySpec(secretkey.getBytes());
SecretKeyFactory skf = SecretKeyFactory.getInstance("DES");
myDesKey = skf.generateSecret(dks);
cipher = Cipher.getInstance("DES/ECB/PKCS5Padding");
} catch (Exception e) {
e.printStackTrace();
}
}
public String encodeBeanToString(Student student)
throws IllegalBlockSizeException, BadPaddingException,
InvalidKeyException {
String result = null;
String jsonString = JSONUtils.toJSON(student);
byte[] text = jsonString.getBytes();
cipher.init(Cipher.ENCRYPT_MODE, myDesKey);
byte[] textEncrypted = cipher.doFinal(text);
result = Base64.encodeBase64String(textEncrypted);
return result;
}
public Student decodeStringToBean(String param) throws IOException,
InvalidKeyException, IllegalBlockSizeException,
BadPaddingException, IntrospectionException {
byte[] decodedBytes = Base64.decodeBase64(param);
cipher.init(Cipher.DECRYPT_MODE, myDesKey);
byte[] textDecrypted = cipher.doFinal(decodedBytes);
return JSONUtils.parseJSON(new String(textDecrypted), Student.class);
}
private void test() {
Address address = new Address();
address.setCountry("PH");
address.setZip("4030");
Student student = new Student();
student.setAddress(address);
student.setName("Ipiel");
student.setAge(27);
try {
String encoded = encodeBeanToString(student);
System.out.println("encoded: " + encoded);
Student decoded = decodeStringToBean(encoded);
System.out.println("decoded: " + decoded);
} catch (Exception e) {
}
}
public static void main(String args[]) {
new IpielContextParser("yxvuicidunccxnxzquidxstraitsdxsunmaitrxadxtruityharmunix").test();
}
}