Image Encryption Decryption Code Left Aligned
Image Encryption Decryption Code Left Aligned
1: import javax.crypto.Cipher;
2: import javax.crypto.SecretKeyFactory;
3: import javax.crypto.spec.GCMParameterSpec;
4: import javax.crypto.spec.PBEKeySpec;
5: import javax.crypto.spec.SecretKeySpec;
6: import java.security.SecureRandom;
7: import java.io.ByteArrayOutputStream;
8: import java.nio.file.Files;
9: import java.io.File;
10:
13:
19: }
20:
23:
26: sr.nextBytes(salt);
28:
31: sr.nextBytes(iv);
34:
36:
38: bos.write(salt);
39: bos.write(iv);
40: bos.write(encryptedData);
42: }
43: }
44:
Decryption Module
1: import javax.crypto.Cipher;
2: import javax.crypto.SecretKeyFactory;
3: import javax.crypto.spec.GCMParameterSpec;
4: import javax.crypto.spec.PBEKeySpec;
5: import javax.crypto.spec.SecretKeySpec;
6: import java.nio.file.Files;
7: import java.util.Arrays;
8: import java.io.File;
9:
12:
18: }
19:
25: }
26:
30:
35:
37: }
38: }
39:
GUI Implementation
1: import javax.swing.*;
2: import java.awt.*;
3: import java.awt.event.*;
4: import java.io.*;
5: import javax.swing.filechooser.FileNameExtensionFilter;
6: import com.formdev.flatlaf.FlatLightLaf;
7: import com.formdev.flatlaf.FlatDarkLaf;
8:
18:
22: setDefaultCloseOperation(EXIT_ON_CLOSE);
24:
32:
33: buttonPanel.add(selectImageBtn);
34: buttonPanel.add(encryptBtn);
35: buttonPanel.add(decryptBtn);
36: buttonPanel.add(resetBtn);
37: buttonPanel.add(exitBtn);
38: buttonPanel.add(toggleThemeBtn);
39:
41:
imagePreview.setBorder(BorderFactory.createLineBorder(Color.GRAY)
);
42:
47: passwordPanel.add(passwordField);
48: passwordPanel.add(showPassword);
49:
51: progressBar.setStringPainted(true);
52:
53: statusLabel = new JLabel("Status: Ready",
SwingConstants.CENTER);
54:
60:
62: fileChooser.setFileFilter(new
FileNameExtensionFilter("Image Files", "png", "jpg", "jpeg"));
63:
71: }
72:
79: }
80: }
81:
85: gui.setVisible(true);
86: });
87: }
88: }
89: