Monday 10 February 2014

DES Algorithm source code in JAVA


import java.security.spec.AlgorithmParameterSpec;
import javax.crypto.CipherOutputStream;
import javax.crypto.KeyGenerator;
import javax.crypto.SecretKey;
import javax.crypto.spec.IvParameterSpec;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.security.Security;
import javax.crypto.Cipher;
import javax.crypto.CipherInputStream;

public class DES {

    static Cipher ce;
    static Cipher cd;

    public static void main(String args[]) throws Exception {

     

        SecretKey skey;
        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("F:/sem1report/test.txt");

        FileOutputStream os = new FileOutputStream("F:/sem1report/encry.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 output.txt");

        FileInputStream is1 = new FileInputStream("F:/sem1report/encry.txt");
        int endataSize = is1.available();

        byte[] decBytes = new byte[endataSize];

        read_decode(decBytes, is1);

        is.close();
        FileOutputStream os1 = new FileOutputStream("F:/sem1report/decry.txt");

        os1.write(decBytes);
        os1.flush();
//        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++;

        }
    }
}

No comments:

Post a Comment