https://github.com/m4cs/pixcryption
:camera: Pixel Safe Encryption - Now Cryptographically Secure :lock:
https://github.com/m4cs/pixcryption
aes-encryption decrypt-messages encryption encryption-algorithms pixels steganography steganography-algorithms steganography-encoding steganography-library
Last synced: 18 days ago
JSON representation
:camera: Pixel Safe Encryption - Now Cryptographically Secure :lock:
- Host: GitHub
- URL: https://github.com/m4cs/pixcryption
- Owner: M4cs
- License: gpl-2.0
- Created: 2019-12-07T22:08:44.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2024-01-05T18:01:45.000Z (over 1 year ago)
- Last Synced: 2025-03-25T02:43:52.574Z (about 1 month ago)
- Topics: aes-encryption, decrypt-messages, encryption, encryption-algorithms, pixels, steganography, steganography-algorithms, steganography-encoding, steganography-library
- Language: Python
- Homepage:
- Size: 10.5 MB
- Stars: 57
- Watchers: 5
- Forks: 8
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
# Pixcryption
Pixel Safe Encryption - **Now with AES Encryption on Strings**  
Run a Remote Environment To Test Pixcryption: [](https://repl.it/github/M4cs/pixcryption)
# Goal
Pixcryption's goal is to offer a new form of steganography/encryption through imagery. It uses a random seeded UUID to generate a user_key which matches RGB perfect values to match to unicode characters. These are stored in a `user_key.png` file which is used to encrypt and decrypt messages. The speed is getting there but there is 100% room for improvement. I have been working on this for 2 months now and with contributions from @TotallyNotChase he was able to implement AES encryption to the strings passed into Pixcryptions image cipher.
# Example Results
User Key (Compressed in README):
![]()
Encrypted Message (Uncompressed):
![]()
Hi my name is Max and this is an encrypted image that decrypts into a string. I call it pixelsafe encryption and plan on making it into an awesome thing.# Requirements
- Python 3.7+
- Pillow
- Numpy
- PyCryptodome# Development
To install run either `pip3 install -r requirements.txt` or `poetry install` if you use poetry for dependency management.
To generate a user_key for testing run `python3 test.py` once and then to test encryption/decryption with said user_key run the `test.py` file again.
# Usage
Inside of the `core.lib` module you will find all functions currently used in the project.
With these you can generate a user key, grab a key_list from a user key, and encrypt/decrypt messages. The implementation is pretty simple and you can take a look at `test.py` for an example.
**This only encrypts unicode characters at the moment which makes it a good choice for messaging. The # of pixels in the image will be == to the # of characters in the string encrypted. This is one security flaw which we need to look into fixing.**
# Contribution
If you would like to contribute to pixcryption please submit a pull request. Any help is welcome and all PRs will be reviewed.
Check [CONTRIBUTING.md](https://github.com/M4cs/pixcryption/blob/master/CONTRIBUTING.md) for more information.