title: Use private key in java using DES without generating key automatically
body: <p>I have to encrypt/decrypt plain text in java using DES with a key. I have got a very good tutorial at IBM which can be found <a href="http://www.ibm.com/developerworks/java/tutorials/j-sec1/section4.html#prikeyexample" rel="nofollow">here</a> . The problem with this example is that it is generating the key in the program itself. Now if I encrypt a string(eg password) and store in database then I would not be able to decrypt it because I would not know the key.</p>
  
  <p>Below is the example at IBM</p>
  
  <pre><code>import java.security.*;
  import javax.crypto.*;
  //
  // encrypt and decrypt using the DES private key algorithm
  public class PrivateExample {
  
    public static void main (String[] args) throws Exception {
    //
    // check args and get plaintext
      if (args.length !=1) {
        System.err.println("Usage: java PrivateExample text");
        System.exit(1);
      }
    byte[] plainText = args[0].getBytes("UTF8");
    //
    // get a DES private key
    System.out.println( "\nStart generating DES key" );
    KeyGenerator keyGen = KeyGenerator.getInstance("DES");
    keyGen.init(56);
    Key key = keyGen.generateKey();
    System.out.println( "Finish generating DES key" );
  //
  // get a DES cipher object and print the provider
  Cipher cipher = Cipher.getInstance("DES/ECB/PKCS5Padding");
  System.out.println( "\n" + cipher.getProvider().getInfo() );
  //
  // encrypt using the key and the plaintext
  System.out.println( "\nStart encryption" );
  cipher.init(Cipher.ENCRYPT_MODE, key);
  byte[] cipherText = cipher.doFinal(plainText);
  System.out.println( "Finish encryption: " );
  System.out.println( new String(cipherText, "UTF8") );
  
  //
  // decrypt the ciphertext using the same key
  System.out.println( "\nStart decryption" );
  cipher.init(Cipher.DECRYPT_MODE, key);
  byte[] newPlainText = cipher.doFinal(cipherText);
  System.out.println( "Finish decryption: " );
  
  System.out.println( new String(newPlainText, "UTF8") );
  }
  }
  </code></pre>
  
  <p>Can anyone suggest how can I add my own key in this example?</p>