wood burning stoves 2.0*
The moose likes Java in General and the fly likes Encrypting & Decrypting an XML File using Base64Encoder & Base64Decoder Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login

Win a copy of Java 8 in Action this week in the Java 8 forum!
JavaRanch » Java Forums » Java » Java in General
Bookmark "Encrypting & Decrypting an XML File using Base64Encoder & Base64Decoder" Watch "Encrypting & Decrypting an XML File using Base64Encoder & Base64Decoder" New topic

Encrypting & Decrypting an XML File using Base64Encoder & Base64Decoder

shiva kumar

Joined: Aug 22, 2006
Posts: 7
Can any one give me a code sample to encrypt & decrypt an xml file

I tried this code. It works fine. But not supposed to use sun packages.
The URL http://java.sun.com/products/jdk/faq/faq-sun-packages.html says that its risky to use sun packages.

So can anyone help in doing encryption in other way.
Awaiting reply
Thanks in advance.

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.ObjectInputStream;
import java.security.Key;

import javax.crypto.Cipher;

import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;

public class EncryptDecrypt
private String characterEncoding;
private Cipher encryptCipher;
private Cipher decryptCipher;
private BASE64Encoder base64Encoder = new BASE64Encoder();
private BASE64Decoder base64Decoder = new BASE64Decoder();

private static Key getKey() throws Exception {
Key key = null;
ObjectInputStream in=null;
try {
in = new ObjectInputStream(new FileInputStream("d:\\key1"));
key = (Key)in.readObject();
} catch (FileNotFoundException e) {
throw new Exception("File not found"+ e.getMessage());
}finally {
if(in != null) {
try { in.close(); }catch(Exception ex){ }
return key;

public EncryptDecrypt(String characterEncoding) throws Exception{
Key key = getKey();
this.characterEncoding = characterEncoding;
this.encryptCipher = Cipher.getInstance("DESede/ECB/PKCS5Padding");
this.encryptCipher.init(javax.crypto.Cipher.ENCRYPT_MODE, key);
this.decryptCipher = Cipher.getInstance("DESede/ECB/PKCS5Padding");
this.decryptCipher.init(javax.crypto.Cipher.DECRYPT_MODE, key);

synchronized public String encrypt(String text) throws Exception{
byte[] textBytes = text.getBytes(characterEncoding);
byte[] encryptedTextBytes = this.encryptCipher.doFinal(textBytes);
String encodedEncryptedText = this.base64Encoder.encode(encryptedTextBytes);
return encodedEncryptedText;

synchronized public String decrypt(String encodedEncryptedText) throws Exception{
byte[] encryptedTextBytes = this.base64Decoder.decodeBuffer(encodedEncryptedText);
byte[] textBytes = this.decryptCipher.doFinal(encryptedTextBytes);
String recoveredText = new String(textBytes, characterEncoding);
return recoveredText;

public static String getString(FileReader fr) throws Exception{
StringBuffer text = new StringBuffer();
String lineSep = System.getProperty("line.separator");
String nextLine="";
BufferedReader in = new BufferedReader(fr);
while ((nextLine = in.readLine()) != null){
return text.toString();
} catch (Exception e) {
System.out.println("Error Occured in getString method:");
return null;

public static void main(String[] args){

EncryptDecrypt encryptAgent = new EncryptDecrypt("ASCII");
String stxt = EncryptDecrypt.getString(new FileReader("d:\\enc\\one.xml"));
String encodedEncryptedText = encryptAgent.encrypt(stxt);
FileWriter fw = new FileWriter("d:\\enc\\one.xml");
System.out.println("done encryption");

String encryptedText = EncryptDecrypt.getString(new FileReader("d:\\enc\\two.xml"));
String recoveredText = encryptAgent.decrypt(encryptedText);
System.out.println("\n\nRecovered Text ..........[" + recoveredText + "]");
FileWriter fw1 = new FileWriter("d:\\enc\\three.xml");
System.out.println("done decryption");
catch (Exception e){
System.out.println("Error Occured:");
[ August 23, 2006: Message edited by: shiva kumar ]
Jesper de Jong
Java Cowboy
Saloon Keeper

Joined: Aug 16, 2005
Posts: 13884

You can use the Apache Jakarta Commons Codec library, it has a Base64 encoder and decoder that you can use.

Java Beginners FAQ - JavaRanch SCJP FAQ - The Java Tutorial - Java SE 7 API documentation
Scala Notes - My blog about Scala
Ulf Dittmer

Joined: Mar 22, 2005
Posts: 39576
Is this question substantially different from the one you posted yesterday? If not, then let's continue the discussion over there, where you got helpful replies.

Ping & DNS - updated with new look and Ping home screen widget
I agree. Here's the link: http://aspose.com/file-tools
subject: Encrypting & Decrypting an XML File using Base64Encoder & Base64Decoder
Similar Threads
Triple DES decryption
Characters jumbled pls help
Cannot find any provider supporting Blowfish/ECB/PKCS5Padding
Encoding XML file using Base64Encoder