- Introduction
- Importance of the Platform
- Interface Overview
- Download Project Guide
- Tips for editing code
- Upload Project Guide
- Community support (algorithms uploaded)
- Team Members
In an era dominated by digital communication and sensitive data exchange, the significance of robust cryptographic solutions cannot be overstated. As the demand for secure information transfer grows, the need for a unified platform integrating various cryptographic algorithms becomes increasingly paramount. This Repository introduces an open-source project – a Graphic User Interface (GUI) platform built through a Java application using the WindowBuilder tool that amalgamates diverse cryptographic algorithms such as RSA, AES, and other related operations, implemented by contributors, contributors can contribute by uploading their encryption algorithms through GitHub.
-
Versatility and Interoperability: Our platform addresses the challenge of managing multiple cryptographic algorithms by providing a centralized interface, allowing users to seamlessly navigate through various protocols. This versatility enhances interoperability across different systems and applications.
-
Security Enhancement: By consolidating a spectrum of cryptographic algorithms, the platform empowers users with the ability to select and combine protocols strategically. This not only fortifies the security of sensitive data but also allows for the adaptation of encryption strategies based on specific use cases and evolving
threats. -
User-Friendly Experience: The GUI design of the platform ensures that even users with limited cryptographic expertise can harness the power of advanced algorithms effortlessly. This democratization of cryptographic tools fosters wider adoption and promotes secure practices across diverse user profiles.
-
Community Support By creating an open-source project, we can build a community of like-minded individuals who share our passion for security. This can lead to new opportunities for collaboration, learning, and growth.
- Java programming language
Window builder
Java GUI designer tool that allows you to create Java GUI applications without writing any codeEclipse IDE
Our Graphic User Interface (GUI) has been meticulously crafted to provide users with an effortless and comprehensive experience in managing cryptographic operations. The platform is structured around a straightforward process, As follows.
-
Algorithm Selection & Brief about the algorithm
-
The ability to open a file
-
Keys fields Management
-
User input (for Encryption and decryption)
-
Encrypt & Decrypt buttons
-
HASH & Digital signature & HMAC buttons
-
Result Display
-
The ability to save results into a file
In this section, you will learn How To get your Own Copy of the Code
- Login or create a new
Github
Account - In the top right corner Click the
Fork
Button
- Make sure that the
Copy the main branch only
button is selected, then Click theCreate Fork
Button
Now you have your Version Of the Code in your account, below are the steps of how to Clone
the files into your computer
Note
There are several ways of cloning
the repository, follow the steps for one of them
-
Add your Changes To the Code, To Know How to Add your Algorithm Click Tips for editing code.
-
After you finish the code, upload the project and merge it with ours, to know how click here.
Tip
Put your algorithm brief inside HTML brackets for a better user experience, as shown following 👉 , <HTML> Example brief </HTML>
Object[][] ArrayOfAlgorithms = {
{ "Example Algorithm", }, // Algorithm name, String
{ "Example Brief", }, // Algorithm brief (also write the required format of writing the keys), String
{ 1, } // Maximum number of keys of your algorithm, Integer
};
getKeyValue() // Call this method, it will return an array of key values
String plain_text = inputtext.getText() // now you stored user input into plain_text variable
Tip
Try to show errors in all the scenarios, when the user types the Text/key in the wrong format, or when something unpredictable happened, and so on.
Error("Add here the text of your error") // Just call the Error() function with your message as a parameter and it will be displayed to the user
results.setText("Write here the results of your algorithm")
After implementing your algorithm within a method, you must perform the next two steps.
Important
It is better to include a parameter on each button to know where the call came from (from encrypt button or decrypt button)
// Encrypt button
JButton EncBtn = new JButton("Encrypt");
EncBtn.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
switch (ChooseAlgorithm.getSelectedItem().toString()) {
case "Example Algorithm": // write here the same name of the algorithm that you wrote in line 74
// Call here your algorithm function
break;
}
}
});
// Decrypt button
JButton DecBtn = new JButton("Decrypt");
DecBtn.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
switch (ChooseAlgorithm.getSelectedItem().toString()) {
case "Example Algorithm": // write here the same name of the algorithm that you wrote in line 74
// Call here your algorithm function
break;
}
}
});
// HMAC Button
JButton HmacBtn = new JButton("HMAC");
HmacBtn.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
// Here implement HMAC Algorithm
}
});
// Digital Signature Button
JButton DSBtn = new JButton("Digital Signature");
DSBtn.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
// Here implement the Digital Signature Algorithm
}
});
// Hash Button
JButton HashBtn = new JButton("HASH");
HashBtn.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
// Here Implement the Hash algorithm
}
});
- You Should push your code on
GitHub
usinggit
- then make a
pull request
to get your code solution as the figure
Thanks to all the contributors who uploaded the algorithms.
-
SHA-1 Algorithm by fahd192
-
HMAC Algorithm by AbdulrahmanAlwazzan
-
PlayFair Algorithm
-
Homophone Algorithm by Fahad2001422
-
RSA Algorithm by AbdullahSZH