File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
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 REST with Spring (video course) this week in the Spring 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 says that its risky to use sun packages.

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


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: 15041

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 8 API documentation
Ulf Dittmer

Joined: Mar 22, 2005
Posts: 42959
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.
I agree. Here's the link:
subject: Encrypting & Decrypting an XML File using Base64Encoder & Base64Decoder
jQuery in Action, 3rd edition