{'title': 'emojipher_reloaded.txt', 'date': '2020-09-10', 'tags': 'python, cryptography', 'type': 'post'}


Symmetric cryptographic means of encryption based on Unicode Emoji standard implemented with Python programming language using secure standard library modules employing user-first design practices and clean architecture standards. 🤡


I built this piece of code to express myself as a true zoomer. It had to contain everything that our generation is known for. Sadly, I could not add any Fortnite features or the inability to install printer drivers to this code. But I did succeed to: Make an encryption algorithm that uses emojis! Make an encryption algorithm that increases data size, because more is better, even more, when it comes to the web! If your application is fast, it is old fashioned. It is written in Python. I (zoomer) love Python. It uses async for everything. Does it improve performance? Maybe. But it looks way cooler if I tell you that my Python code uses async, generators, decorators, and walrus operators. Just joking, no walrus operators.

How does it work? If you are still reading this… no, you probably aren’t. It works by installing a botnet on your device which tunnels traffic from my free VPN project I am working on /s. I drank a liter of Cherry Pepsi today, I think I like it. Tastes pretty good with a glass full of ice. Okay, back to the project. Emojipher works by creating a dictionary of byte values mapped to emoji lists. There are 256 different bytes, so each byte gets one to four emojis assigned to it. This should make it resistant to frequency analysis. (I came up with this when we got an introduction to Vigenère Cipher). Emoji is way more than a byte, so it also works as a bloat algorithm. Do you want to slow down the internet? You want to fill up NSA and Google servers with useless data? I am here to help you. Encrypting data takes the input file, reads it byte by byte, and replaces it with a random emoji from the key dictionary. The output file is just a massive text file of emojis. Decrypting is the reverse operation: read emojis, get byte it represents. Make a new file with decrypted content. I have tested it on two whole files. I have not done any more testing. Is it crypto safe? Unlikely. Is it good crypto? Unlikely, you will still have to send your friend the key you generated. Is it funny? It is for me. I jokingly added this to my resume. And I got no job :(


If you are still here, go look at the source code.

Roadmap? Any future features? Add zoomer-ish features like progress bar? Publish a pip package? Add more emojis? No idea, it was a fun but pretty stupid project. A useful feature would be a way to exchange keys with an asymmetric exchange. This last chapter is basically telling you things I won’t do, or boosting my SEO? Or maybe mentioning SEO is a bad SEO.