Skip to content

Latest commit

 

History

History
133 lines (88 loc) · 2.94 KB

README.md

File metadata and controls

133 lines (88 loc) · 2.94 KB

cryptography-gui-tool

Overview

A cryptographic tool with a GUI interface that can use keys to encrypt strings and files.

No performance optimization has been made, encrypting files larger than 1MB may cause the interface to freeze for a long time.

Features

  • Implements 11 classical ciphers, 2 stream ciphers, 2 block ciphers, 2 public key ciphers, and 1 hash algorithm. Can encrypt and decrypt both strings and files.
  • Includes a GUI interface implemented with PyQt.
  • The cryptographic library is separated from the GUI code and can be used as a standalone cryptographic library.

The specific implemented ciphers are as follows:

Classical Ciphers (for string encryption and decryption)

  1. Monoalphabetic Substitution Ciphers:
  • Caesar Cipher
  • Keyword Cipher
  • Affine Cipher
  • Multilateral Cipher
  1. Polyalphabetic Ciphers:
  • Vigenere Cipher
  • Autokey Ciphertext
  • Autokey Plaintext
  1. Polygram Ciphers:
  • Playfair Cipher
  1. Transposition Ciphers:
  • Permutation Cipher
  • Column Permutation Cipher
  • Double-Transposition Cipher

Stream Ciphers (for encrypting and decrypting strings and files)

  • RC4
  • CA

Block Ciphers (for encrypting and decrypting strings and files)

  • DES-64
  • AES-64

Public Key Ciphers (can generate key pairs, encrypt and decrypt strings and files)

  • RSA
  • ECC

Hash Algorithm (for strings and files)

  • MD5

Environment Dependencies

Only PyQt5 is required, as listed in requirement.txt, generated by pip freeze.

Deployment Steps

It is recommended to create a Python environment using venv. In the project directory, execute the following commands:

# 1. Create a virtual environment
python -m venv .env

# 2. Activate the virtual environment
# cmd
./.env/Scripts/activate.bat

# powshell
./.env/Scripts/Activate.ps1

# linux or MacOS
source ./.env/Scripts/activate

In the created Python environment, run the following commands:

# 1. Install dependencies
pip install -r requirements.txt

# 2. Start the program
python3 main.py

Directory Structure Description

.
├── algorithm  Cryptographic algorithm implementation
│ ├── block_cipher
│ │ └── aes
│ ├── classical_cipher
│ ├── hash_algorithm
│ ├── public_cipher
│ │ ├── ecc
│ │ └── rsa
│ └── stream_cipher
│ └── ca
├── assets QSS configuration
│ ├── icons
│ ├── python
│ └── qss
├── event  GUI event binding
└── ui  GUI interface definition

Version Updates

1.0 Documentation update

1.1 Code standard update

1.2 PyQt5 version update; Removed QSS; Test files moved to a separate folder.

Disclaimer

Please credit the author morsuning if you use this code publicly.

License

Mozilla Public License 2.0

Stargazers over time