Giter Club home page Giter Club logo

pixcryption's Introduction

Pixcryption

Pixel Safe Encryption - Now with AES Encryption on Strings

Stars Issues License

Run a Remote Environment To Test Pixcryption: Run on Repl.it

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 for more information.

pixcryption's People

Contributors

frenchie0x4ff avatar m4cs avatar philippeitis avatar ra80533 avatar totallynotchase avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

pixcryption's Issues

pyproject.toml is invalid according to Poetry

Poetry reports pyproject.toml as invalid and refuses to install the project:

$ poetry --version
Poetry version 1.0.5
$ poetry install

[RuntimeError]
The Poetry configuration is invalid:
  - 'description' is a required property

Per the emitted error, the missing property should be added to pyproject.toml.

Refactor Code Base for Better Structure

Everything is currently in pixcryption.core.lib but I feel some functions might be better in a helper namespace to help readability of the code. This is a good first issue if you'd like to refactor/clean up the code base!

Implement Normal Image Steganography for Images

A reddit user commented on some strategies to embed the encrypted images inside a provided input image and produce and image that looks similar but embedded with the encrypted message.

This would make this more pheasable for usage in real world applications for embeddable encryption in images.

Check here for the Reddit link. Here is a quote:

The usual way to hide messages in images is to let the user provide a real image to hide the message in.

For each RGB pixel you can take the R, G and B values individually, e.g. say R is 251. The idea is that the difference between 251, 250 or 252 is basically imperceptible in a photo. You can exploit that to hide your message in the bottom 2 (or 1 or 3) bits of each colour value in each pixel. Using 2 bits per colour you get 6 bits per pixel.

The end result is an image that looks visually identical but contains your message hidden in it.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.