begin process at 2012 02 09 20:16:38
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Sécurité & Cryptage

 > CRYPTAGE PAR INVERSION DE BITS

CRYPTAGE PAR INVERSION DE BITS


 Information sur la source

Note :
Aucune note
Catégorie :Sécurité & Cryptage Niveau :Débutant Date de création :13/12/2003 Date de mise à jour :14/12/2003 20:15:59 Vu / téléchargé :5 508 / 354

Auteur : Saros

Ecrire un message privé
Site perso
Commentaire sur cette source (12)
Ajouter un commentaire et/ou une note

 Description

Ce programme implémente un petit algorithme de cryptage que j'ai mis au point il ya de ça quelques années.
On prend par exemple la chaîne 'Bonjour'
Le programme va parcourir la chaîne, lettre par lettre. Prenons l'exemple de 'B' :
Imaginons que B s'écrive en binaire 01100100
Comme c'est la première lettre, on va inverser le premier bit :
01100100 > 11100100
Pour 'o', comme c'est la deuxième lettre, on va inverser le deux premiers ; pour 'n', les trois premiers, et ainsi de suite...
Il ne prend pas de clé utilisateurs, et comme le principe est le même pour le codage comme le décodage, entrer une chaîne codée va la décoder, et vice-versa.


 Conclusion

Le principale désavantage de ce programme est son originalité... Comme il n'y a pas besoin de clé, la même chaîne codée n'importe quand et n'importe où donnera exactement la même chaîne codée.
MAJ : Maintenant, ça lit un fichier et l'encode directement. Il suffit de spécifier son chemin.
Les commentaires sont les bienvenus.

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources du même auteur

Source avec Zip Source avec une capture CONVERTISSEUR RPN ALGEBRIQUE
Source avec Zip Source avec une capture DIRECTX 9 : TEAPOT EN ROTATION AVEC LUMIERE

 Sources de la même categorie

PROJET DE CRYPTOGRAPHIE: RSA À JEU REDUIT D'INSTRUCTION par samatarahmed
Source avec Zip Source avec une capture CRYPTOSYSTÈME ELGAMAL LIBRAIRIE GMP par louelh95
Source avec Zip Source .NET (Dotnet) NOUVEL ALGORITHME D'ENCRYPTION-DÉSENCRYPTION DYNAMIQUE (INFA... par vletktol
Source avec Zip A2DCRYPT - CRYPTAGE 2048 BITS par darkor
Source avec Zip Source avec une capture CRYPTEUR-DÉCRYPTEUR-IP par antho974

Commentaires et avis

Commentaire de djl le 13/12/2003 09:33:40

ouai ba c'est bien iNumChrs = sOrg.length(); qu'il faut faire

Commentaire de Saros le 13/12/2003 13:15:51

OK, merci beaucoup.
J'ai oublié de dire, au cas où ça pourrait entraîner des frustrations : compilé avec VC++ 6.0.
Saros

Commentaire de Saros le 13/12/2003 13:20:05

Je vais mettre a jour le zip dans 20 min (j'ai fait une bourde).

Commentaire de Saros le 13/12/2003 13:37:01

Voilà c'est fait (et encore merci)

Commentaire de djl le 13/12/2003 14:30:10

le top serait d'avoir l'exe dans le zip, pour ceux qui(comme moi ) ont la fleme de decompacter le zip pour compiler!

Commentaire de Kirua le 14/12/2003 00:57:14

euhm, pour récupérer plus que jusqu'au pemier espace, tu fais ça:
(je suppose que tu programmes avec la STD)

cin.getline(variable, longueur, delimiteur);

alors tu fais par exemple:

(demande quelle est la longueur du texte)
cin >> LONGUEUR;
char *texte = new char[LONGUEUR];
cin.getline(texte, LONGUEUR, ''); //le caractère 0 comme délimiteur, donc plus l'espace

.. encodage (un cryptage sans clef n'est pas un cryptage, c'est un encodage) ...

delete[] texte;


je garantis pas que ce soit sans faute, j'ai tappé ça directement ds le formulaire de comment, j'ai jamais compilé ça.


pour getline: http://www.cplusplus.com/ref/iostream/istream/getline.html

Commentaire de Saros le 14/12/2003 11:12:01

Cher Kirua :
-Merci pour ton commentaire, je vais essayer de le compiler ; cependant, je l'ai déjà reprogrammé en utilisant _cscanf et _cprintf, ça marche très bien, mais je ne sais pas que préférer, cin/cout ou printf. J'ai cru entendre dire que cin et cout sont plus compatibles, mais bon...
-C'est quoi la STD ?
-Le site que tu m'as passé est excellent, mieux organisé que la MSDN... Merci beaucoup !
Saros

Commentaire de Kirua le 14/12/2003 12:44:58

STD = la bibliothèque standard du C++, en font partie (entre autre):

iostream
fstream
istringstream
string
...

à côté de ça tu as aussi la STL (Standard Template Library):

vector
deque
stack
list
map
.............. et un tas d'autres

ces librairies sont les standards du C++, il est bon de les utiliser pour favoriser l'uniformisation des codes. Printf, Scanf, ... tout ça c'est la lib standard du C, c'est dommage de les utiliser quand on fait du beau code C++ tout propre, ça casse un peu l'ambiance je trouve ;-)

en fait, pour utiliser cin, cout ... tu mets tjs ça:
#include <iostream>
using namespace std; //cette ligne indique que par défaut, quand tu utilises un objet, il fait partie de l'espace de nom std, ça évite de tapper ça:
std::cout << ...

:: est l'opérateur de résolution de portée, mais c'est lourd à écrire alors...


une remarque par rapport au code que j'ai tappé ds le msg précédent: le caractère NULL (0) a sauté à cause de l'anti-slash (il est temps que ce bug soit fixé), évidemment, le dernier paramètre de getline est: '"ANTISLASH"0'

cplusplus est un excellent site, je ne peux plus m'en passer, et faut vrmnt que les gens utilisent les libs standards, parce que sinon, c'est plus un standanrd, sgnif :-( si tlm utilise sa lib, ça devient impossible de lire les codes sources des autres, même si c'est partout du C++, on s'y retrouve plus.


une note par rapport à ton programme plus directement:
je pense qu'un programme d'encodage devrait surtout coder/décoder des fichiers, plutôt que de demander à l'utilisateur de tapper son message. Moi je te propose de te renseigner sur cplusplus.com sur l'utilisation de <fstream> pour les flux de fichiers.

ça aura plusieurs avantages directs:
- tu restes ds le beau et pur C++ ;-)
- tu peux déterminer la taille du fichier, donc tu ne dois plus demander à l'utilisateur de savoir combien de caractères il y a dans son texte (à ce sujet, en haut je me suis trompé: c'est LONGUEUR+1, il faut de la place pour le caractère nul)
- l'utilisateur ne doit pas tapper son texte, surtout s'il s'agit de décryptage ça devient horrible de tapper Ç si on sait pas à quel code ASCII ça correspond
- plus de problème de flux arrêté à l'espace, mais remarque que les flux de fichiers avec la STD sont très semblables aux flux vers/de la console, ainsi:

cin >> variable;
mais aussi:
fichier >> variable;

donc tu devras qd même utiliser getline, en calculant d'abord la taille du fichier (avec les méthodes de déplacement de la "tête de lecture" du fichier, tout est expliqué sur cplusplus.com)

bien à toi

Kirua

Commentaire de Saros le 14/12/2003 17:59:51

OK, merci beaucoup pour les infos.
Je tiens à remarquer qu'avec printf et scanf, le programme fonctionne tout à fait correctement (je ne l'ai pas mis sur le site), le seul ennui c'est que j'utilise une variable char sOrg[256], donc on ne peut pas taper plus de 255 caractères (+1 pour le nul).
Je vais voir pour les fichiers, essayer d'améliorer le code et le cas échéant mettre à jour la source.
A+
Saros

Commentaire de Saros le 14/12/2003 20:15:39

Mise à jour.
Je ne sais pas si mettre l'exe compilé est avantageux, étant donné qu'à lui seul il fait 520ko... Si ça gêne vraiment certains, postez un commentaire.
Essayer avec le fichier test.txt
Un grand merci à Kiruaet à djl.

Commentaire de Kirua le 14/12/2003 21:56:55

Saros, pour réduire la taille de mon EXE avec DevC++ j'ajoute:
-s
aux options de compilation, j'ai appris ça sur cppfrance, je sais plus qui m'a dit que ça permettait au compilo de transférer au lieur tout ce qu'il ne connaissait pas, et que comme ça ce qui n'est pas utilisé n'est pas compilé. en général ça réduit la taille du fichier exe de moitié.

essayes de faire ça avec VC++, il doit bien y avoir un champ "options de compilation" ds les options du projet.

Commentaire de chris223 le 28/12/2005 15:52:05

Je vais faire le chieur mais a mon avis le decoupage du code en plusieur fonctions en aurai ameliorer la lisibilite ;)

Autre petite remarque je ne sais pas si le fait de reecrire la fichier plutot que d'en creer un autre soit une tres bonne chose, c'est un coup a perdre des donnees ca.

Sinon l'algo est plutot bien pense et le code bien commente, c'est cool :)

 Ajouter un commentaire




Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,966 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales