Python module and its web equivalent, to hide text within text by manipulating bits

Overview

cacherdutexte.github.io

This project contains :

  • Python modules (binary and decimal system 6) with a dedicated tkinter program to use it.
  • A web version, which is actually hosted on https://cacherdutexte.github.io.

I explain below how the project works, but an english version is available. See directly the English explanation 🇬🇧

🇫🇷 Comment j'ai caché du texte dans du texte

C'est une façon en manipulant les bits de cacher du texte dans du texte. Imaginons la chaine de caractère :

Hacker

Que je veux cacher dans le message :

Bonjour, je suis Axel Thauvin
  • Dans un premier temps, on vient rĂ©cupĂ©rer la reprĂ©sentation dĂ©cimale dans la table UTF-8 de chaque caractère de la chaine Hacker

    Voici dans un tableau, la représentation décimale des 127 premiers caractères (aussi appelé tableau ASCII) :

Pour l'exemple, nous allons prendre le caractère H. Ici, sa représentation décimale est 72 (base 10).

  • Ensuite nous allons convertir ce nombre en base 6 sur 4 'bits'

    Pourquoi ?

    Si nous codons les lettres en base 6 sur 4 bits, nous aurons la représentation maximale de 5555 -> soit 64 -> 1296 : la valeur maximale que nous allons pouvoir exploiter dans ce tableau

    En fait nous avons 5 caractères invisibles qui vont correspondrent aux chiffres de ces bits, que nous allons cacher dans notre texte.

    • Pour le 0 il n'y a pas de caractère cachĂ©
    • Pour le 1 c'est le caractère unicode \u200C
    • Pour le 2 c'est le caractère unicode \u200D
    • Pour le 3 c'est le caractère unicode \u200E
    • Pour le 4 c'est le caractère unicode \u200F
    • Pour le 5 c'est le caractère unicode \u034F

    Exemple avec le H

    Ici la représentation décimale de H est 72. Sa représentation en base 6 sur 4 bits est 0200.

    Je vais donc :

    • Pas ajouter de caractère pour le 1er bit (car il vaut 0)
    • Ajouter le caractère \u200D pour le 2ème bit (car il vaut 2)
    • Pas ajouter de caractère pour le 3ème bit (car il vaut 0)
    • Pas ajouter de caractère pour le 4ème bit (car il vaut 0)

    Reprenons la chaine initiale J'ai Bonjour, je suis Axel Thauvin. Je vais donc écrire : Bo\u200Dnj juste pour le H

    Et je fais pareil avec tous les caractères de Hacker. Ce qui me donne : Bo‍njou‍r‏,‌ j‍e‏ ‎su‍i͏s͏ A‍x‏e͏l ‎T‌hauvin (généré avec mon programme, vous pouvez l'essayer sur mon site)

    Voilà le résultat :

🇬🇧 How did I hid text in text

This is a bitwise way of hiding text within text. Let's imagine the string :

Hacker

That I want to hide in the message:

Hello, I am Axel Thauvin
  • First, we get the decimal representation in the UTF-8 table of each character in the Hacker string

    Here is the decimal representation of the first 127 characters in an array (also called ASCII array):

For the example, we will take the character H. Here, its decimal representation is 72 (base 10).

  • Then we will convert this number to base 6 on 4 'bits'

    Why ?

    If we encode the letters in base 6 on 4 bits, we will have the maximum representation of 5555 -> that is 64 -> 1296 : which is the maximum value we can use in this table

    In fact we have 5 invisible characters which will correspond to the digits of these bits, which we will hide in our text.

    • For the 0 there is no hidden character*.
    • For 1 it is the unicode character \u200C*
    • For 2 it is the unicode character \u200D*
    • For 3 it is the unicode character \u200E
    • For 4 it is the unicode character \u200F
    • For 5 it is the unicode character \u034F

    Example with H

    Here the decimal representation of H is 72. Its 4-bit base-6 representation is 0200.

    I will therefore :

    • Not add a character for the 1st bit (because it is 0)
    • Add the character \u200D for the 2nd bit (because it is 2)
    • Not add a character for the 3rd bit (because it is 0)
    • Do not add a character for the 4th bit (because it is 0)

    Let's go back to the original string. I have Hello, I am Axel Thauvin. So I'll write : I'll write He\u200Dll just for the H

    And I do the same with all the characters in Hacker. Which gives me: He‍‍llo‍,‏‍‌ ‏‍I‏‌‎ a‍‍͏m͏‏ ‍‎‏A͏x‍‎e‌͏l͏ T‍h‏a͏uv‎i‌n (generated with my program, you can try it on my website)

    Here is the result:

Owner
Cheers, love! The cavalry's here !
A string extractor module for python

A string extractor module for python

Fayas Noushad 4 Jul 19, 2022
Writing Alfred copy/paste scripts in Python

Writing Alfred copy/paste scripts in Python This repository shows how to create Alfred scripts in Python. It assumes that you using pyenv for Python v

Will Fitzgerald 2 Oct 26, 2021
A simple and easy to use Spam Bot made in Python!

This is a simple spam bot made in python. You can use to to spam anyone with anything on any platform.

7 Sep 08, 2022
A way to write regex with objects instead of strings.

Py Idiomatic Regex (AKA iregex) Documentation Available Here An easier way to write regex in Python using OOP instead of strings. Makes the code much

Ryan Peach 18 Nov 15, 2021
✨ Un générateur de lien raccourcis en fonction d'un lien totalement fait en Python par moi, et en français.

Shorter Link ❗ Un générateur de lien raccourcis en fonction d'un lien totalement fait en Python par moi, et en français. Dépendences : pip install pys

MrGabin 3 Jun 06, 2021
Run async workflows using pytest-fixtures-style dependency injection

Run async workflows using pytest-fixtures-style dependency injection

Simon Willison 26 Jun 26, 2022
Check the basic quality of any dataset

Data Quality Checker in Python Check the basic quality of any dataset. Sneak Peek Read full tutorial at Medium. Explore the app Requirements python 3.

MalaDeep 8 Feb 23, 2022
This is a tool to calculate a resulting color of the alpha blending process.

blec: alpha blending calculator This is a tool to calculate a resulting color of the alpha blending process. A gamma correction is enabled and the def

Igor Mikushkin 12 Sep 07, 2022
Casefy (/keÉŞsfaÉŞ/) is a lightweight Python package to convert the casing of strings

Casefy (/keÉŞsfaÉŞ/) is a lightweight Python package to convert the casing of strings. It has no third-party dependencies and supports Unicode.

Diego Miguel Lozano 12 Jan 08, 2023
A program to convert celcius to faranheit. made with python

Temp-Converter What is Temp-Converter Temp-Converter is little program made with pyhton to convert celcius to faranheit. Needed A python interpreter P

Chandula Janith 0 Nov 27, 2021
The git for the Python Story Utility Package library.

SUP The git for the Python Story Utility Package library. Installation: Install SUP by simply running pip install psup in your terminal. Check out our

Enoki 6 Nov 27, 2022
NetConfParser is a tool that helps you analyze the rpcs coming and going from a netconf client to a server

NetConfParser is a tool that helps you analyze the rpcs coming and going from a netconf client to a server

Aero 1 Mar 31, 2022
✨ Voici un code en Python par moi, et en français qui permet d'exécuter du Javascript en Python.

JavaScript In Python ❗ Voici un code en Python par moi, et en français qui permet d'exécuter du Javascript en Python. 🔮 Une vidéo pour vous expliquer

MrGabin 4 Mar 28, 2022
✨ Un générateur de mot de passe aléatoire totalement fait en Python par moi, et en français.

Password Generator ❗ Un générateur de mot de passe aléatoire totalement fait en Python par moi, et en français. 🔮 Grâce a une au module random et str

MrGabin 3 Jul 29, 2021
A simple, console based nHentai Code Generator

nHentai Code Generator A simple, console based nHentai Code Generator. How to run? Windows Android Windows Make sure you have python and git installed

5 Jun 02, 2022
Find version automatically based on git tags and commit messages.

GIT-CONVENTIONAL-VERSION Find version automatically based on git tags and commit messages. The tool is very specific in its function, so it is very fl

0 Nov 07, 2021
cssOrganizer - organize a css file by grouping them into categories

This python project was created to scan through a CSS file and produce a more organized CSS file by grouping related CSS Properties within selectors. Created in my spare time for fun and my own utili

Andrew Espindola 0 Aug 31, 2022
Parse URLs for DOIs, PubMed identifiers, PMC identifiers, arXiv identifiers, etc.

citation-url Parse URLs for DOIs, PubMed identifiers, PMC identifiers, arXiv identifiers, etc. This module has a single parse() function that takes in

Charles Tapley Hoyt 2 Feb 12, 2022
Spacegit is a .git exposed finder

Spacegit Spacegit is a basic .git exposed finder Usage: You need python3 installed to run spacegit use: python3 spacegit.py (url) Disclaimer: **This i

2 Nov 30, 2021
iOS Snapchat parser for chats and cached files

ParseSnapchat iOS Snapchat parser for chats and cached files Tested on Windows and Linux install required libraries: pip install -r requirements.txt c

11 Dec 05, 2022