· 7 years ago · Apr 21, 2018, 03:38 AM
1import java.nio.file.Files;
2import java.nio.file.Paths;
3import java.security.*;
4import javax.crypto.*;
5import java.util.*;
6import java.io.*;
7
8public class passenc {
9
10 String FileName = "encryptedtext12.txt"; //save encrypted text
11 String FileName2 = "decryptedtext12.txt"; //save decrypted text
12
13 Cipher AesCipher ;
14 byte[] byteText ;
15 public void enc(String tobe,String enctype)
16 {
17
18 try{
19 //convert message to bytestream
20
21 //AES cipher
22 AesCipher= Cipher.getInstance(enctype);
23 byteText=tobe.getBytes();
24 KeyGenerator KeyGen = KeyGenerator.getInstance(enctype); //define key generator
25 KeyGen.init(128); //initalize key generator
26
27 SecretKey SecKey = KeyGen.generateKey(); //private key algorithm AES only one key used
28
29 AesCipher.init(Cipher.ENCRYPT_MODE, SecKey); //initialize AES encryption
30 byte[] byteCipherText = AesCipher.doFinal(byteText); //perform encryption
31 Files.write(Paths.get(FileName), byteCipherText); //write result to file
32
33 byte[] cipherText = Files.readAllBytes(Paths.get(FileName));
34
35 AesCipher.init(Cipher.DECRYPT_MODE, SecKey); //initialize AES decryption
36 byte[] bytePlainText = AesCipher.doFinal(cipherText); //perform decryption
37 Files.write(Paths.get(FileName2), bytePlainText); //write result to file
38
39 }
40 catch(Exception e)
41 {
42 e.printStackTrace();
43 }
44 }
45 public void end(String tobe)
46 {
47 try{
48 AesCipher =Cipher.getInstance("RSA");
49 byteText=tobe.getBytes();
50 KeyPairGenerator kpg = KeyPairGenerator.getInstance("RSA");
51 KeyPair myPair = kpg.generateKeyPair();
52
53 AesCipher.init(Cipher.ENCRYPT_MODE, myPair.getPublic()); //get public key tp encrypt
54 byte[] byteCipherText = AesCipher.doFinal(byteText); //perform encryption
55 Files.write(Paths.get(FileName), byteCipherText); //write to file
56
57 byte[] cipherText = Files.readAllBytes(Paths.get(FileName));
58
59 AesCipher.init(Cipher.DECRYPT_MODE, myPair.getPrivate()); //get private key to decrypt
60 byte[] bytePlainText = AesCipher.doFinal(cipherText); //perform decryption
61 Files.write(Paths.get(FileName2), bytePlainText);
62 }
63 catch(Exception e){
64 e.printStackTrace();
65 }
66 }
67 public static void main(String[] args) throws Exception {
68 passenc obj=new passenc();
69 System.out.println("Enter encryption type : 1 - AES 2 - RSA");
70 BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
71 String enctype=br.readLine();
72
73 System.out.println("Enter message :");
74 String tobe=br.readLine();
75 if(enctype.equals("AES")){
76 obj.enc(tobe, enctype);
77 }
78 else{
79 obj.end(tobe);
80 }
81
82 }
83}