· 5 years ago · Mar 11, 2020, 08:02 PM
1import java.net.*;
2import java.io.*;
3import java.security.InvalidAlgorithmParameterException;
4import java.security.InvalidKeyException;
5import java.security.NoSuchAlgorithmException;
6import javax.crypto.*;
7import javax.crypto.spec.IvParameterSpec;
8import javax.crypto.spec.SecretKeySpec;
9
10public class Server{
11 public static void main(String args[]){
12 int number=0;
13 try{
14 int serverPort = 4567;
15 ServerSocket listenSocket = new ServerSocket(serverPort);
16 while(true) {
17 Socket clientSocket = listenSocket.accept();
18 new Connection(clientSocket,number);
19 number++;
20 }
21 } catch(IOException e) {
22 System.out.println("Listen:" + e.getMessage());
23 }
24 }
25}
26
27class Connection extends Thread {
28 DataInputStream in;
29 DataOutputStream out;
30 Socket clientSocket;
31 int number;
32
33 public Connection (Socket aClientSocket,int clientNumber) {
34
35 try{
36 number=clientNumber;
37 clientSocket = aClientSocket;
38 in = new DataInputStream(clientSocket.getInputStream());
39 out = new DataOutputStream(clientSocket.getOutputStream());
40 this.start();
41 }catch(IOException e){System.out.println("Connection:" + e.getMessage());}
42 }
43
44 public void run(){
45 try{
46 while(true){
47 //key
48 /*KeyGenerator keyGen = KeyGenerator.getInstance("AES");
49 keyGen.init(128);
50 SecretKey secretKey = keyGen.generateKey();*/
51 byte [] key = {1,2,3,4,1,2,3,4,1,2,3,4,1,2,3,4};
52 SecretKey secretKey = new SecretKeySpec(key, 0, key.length, "AES");
53
54 //nonce
55 byte[] nonce={1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1};
56 IvParameterSpec iv = new IvParameterSpec(nonce);
57
58 Cipher c = Cipher.getInstance("AES/CTR/NoPadding");
59 c.init(Cipher.DECRYPT_MODE, secretKey, iv);
60 processFile(c);
61
62 }
63 } catch (NoSuchPaddingException e) {
64 e.printStackTrace();
65 } catch (NoSuchAlgorithmException e) {
66 e.printStackTrace();
67 } catch (InvalidKeyException e) {
68 e.printStackTrace();
69 } catch (InvalidAlgorithmParameterException e) {
70 e.printStackTrace();
71 } catch (IOException e) {
72 e.printStackTrace();
73 }
74 }
75
76 static private void processFile(Cipher c) throws IOException {
77 FileInputStream file = new FileInputStream("C:\\Users\\maria\\IdeaProjects\\AC2\\src\\encrypt.txt");
78 CipherInputStream cis = new CipherInputStream(file, c);
79 int text;
80 while((text=cis.read())!=-1) {
81 System.out.print((char)text);
82 }
83 cis.close();
84 file.close();
85 }
86}