Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

CRYPTOGRAPH


Information sur la source

Catégorie :Graphique Classé sous : crypter, image Niveau : Débutant Date de création : 16/01/2006 Date de mise à jour : 17/01/2006 21:32:53 Vu / téléchargé: 4 899 / 668

Note :
7,67 / 10 - par 3 personnes
7,67 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (17)
Ajouter un commentaire et/ou une note


Description

Cliquez pour voir la capture en taille normale
bon c est un petit programme qui permet de ' crypter ' une image .
La fonction de cryptage se fait ac shr et xor et le decryptage ac xor et shl
Ce n est pas un reel cryptage je pense  mais
Le but n est pas de faire un programme de cryptage mais juste une application marrante .


J ai mis un exemple et les valeurs pr le decrypter sont 4 , la deuxieme il ne faut pas y toucher


 

Source

  • TypeRGB = Record
  • Bleu, Vert, Rouge : Byte;
  • End;
  • TypeTRGBArray = Array [0..12000] Of TypeRGB; // pour la largeur de l'image
  • TypePRGBArray = ^TypeTRGBArray;
  • procedure PRDecrypter(DEimage:Timage;Gauge1:Tgauge;ValSHL:integer;ValXor:integer);
  • var
  • Scan : TypePRGBArray;
  • x,y:integer;
  • ir,iv,ib,mv,mb,mr,Fin: Integer;
  • begin
  • gauge1.MaxValue:=DEimage.Picture.Bitmap.Height-1 ;
  • for y:=0 to DEimage.Picture.Bitmap.Height-1 do
  • begin
  • gauge1.Progress:=y;
  • Scan := DEimage.picture.Bitmap.ScanLine[Y];
  • for x:=0 to DEimage.Picture.Bitmap.Width-1 do
  • begin
  • // Valeurs en rouge vert et bleu
  • mR := Scan[X].Rouge;
  • mV := Scan[X].Vert;
  • mB := Scan[X].Bleu;
  • // Transo en rgb
  • fin:=rgb(mr,mv,mb);
  • fin:=rgb(Scan[X].Rouge,Scan[X].Vert,Scan[X].Bleu ) xor ValXor;
  • Scan[X].Rouge := getRvalue(fin);
  • Scan[X].Vert := getGvalue(fin);
  • Scan[X].Bleu := getBvalue(fin);
  • end;
  • end;
  • DEimage.Refresh;
  • gauge1.Progress:=0;
  • for y:=0 to DEimage.Picture.Bitmap.Height-1 do
  • begin
  • gauge1.Progress:=y;
  • Scan := DEimage.picture.Bitmap.ScanLine[Y];
  • for x:=0 to DEimage.Picture.Bitmap.Width-1 do
  • begin
  • // Valeurs en rouge vert et bleu
  • mR := Scan[X].Rouge;
  • mV := Scan[X].Vert;
  • mB := Scan[X].Bleu;
  • // Transo en rgb
  • fin:=rgb(mr,mv,mb);
  • fin:=rgb(Scan[X].Rouge,Scan[X].Vert,Scan[X].Bleu ) shl ValSHL;
  • Scan[X].Rouge := getRvalue(fin);
  • Scan[X].Vert := getGvalue(fin);
  • Scan[X].Bleu := getBvalue(fin);
  • end;
  • end;
  • DEimage.Refresh;
  • gauge1.Progress:=0;
  • end;
  • procedure PrCrypter(image:Timage;Gauge1:Tgauge;ValSHR:integer;ValXOR:integer);
  • var
  • Scan : TypePRGBArray;
  • x,y:integer;
  • ir,iv,ib,mv,mb,mr,Fin: Integer;
  • begin
  • gauge1.MaxValue:=image.Picture.Bitmap.Height-1 ;
  • for y:=0 to image.Picture.Bitmap.Height-1 do
  • begin
  • gauge1.Progress:=y;
  • Scan := image.picture.Bitmap.ScanLine[Y];
  • for x:=0 to image.Picture.Bitmap.Width-1 do
  • begin
  • // Valeurs en rouge vert et bleu
  • mR := Scan[X].Rouge;
  • mV := Scan[X].Vert;
  • mB := Scan[X].Bleu;
  • // Transo en rgb
  • fin:=rgb(mr,mv,mb);
  • fin:=rgb(Scan[X].Rouge,Scan[X].Vert,Scan[X].Bleu ) shr ValSHR;
  • Scan[X].Rouge := getRvalue(fin);
  • Scan[X].Vert := getGvalue(fin);
  • Scan[X].Bleu := getBvalue(fin);
  • end;
  • end;
  • image.Refresh;
  • gauge1.Progress:=0;
  • for y:=0 to image.Picture.Bitmap.Height-1 do
  • begin
  • gauge1.Progress:=y;
  • Scan := image.picture.Bitmap.ScanLine[Y];
  • for x:=0 to image.Picture.Bitmap.Width-1 do
  • begin
  • // Valeurs en rouge vert et bleu
  • mR := Scan[X].Rouge;
  • mV := Scan[X].Vert;
  • mB := Scan[X].Bleu;
  • // Transo en rgb
  • fin:=rgb(mr,mv,mb);
  • fin:=rgb(Scan[X].Rouge,Scan[X].Vert,Scan[X].Bleu ) xor ValXOR;
  • Scan[X].Rouge := getRvalue(fin);
  • Scan[X].Vert := getGvalue(fin);
  • Scan[X].Bleu := getBvalue(fin);
  • end;
  • end;
  • image.Refresh;
  • gauge1.Progress:=0;
  • end;
 TypeRGB       = Record
                        Bleu, Vert, Rouge : Byte;
                  End;
  TypeTRGBArray = Array [0..12000] Of TypeRGB; // pour la largeur de l'image
  TypePRGBArray = ^TypeTRGBArray;


procedure PRDecrypter(DEimage:Timage;Gauge1:Tgauge;ValSHL:integer;ValXor:integer);
var
Scan : TypePRGBArray;
x,y:integer;
ir,iv,ib,mv,mb,mr,Fin: Integer;
begin
gauge1.MaxValue:=DEimage.Picture.Bitmap.Height-1 ;

for y:=0 to DEimage.Picture.Bitmap.Height-1 do
begin
gauge1.Progress:=y;
Scan := DEimage.picture.Bitmap.ScanLine[Y];
for x:=0 to DEimage.Picture.Bitmap.Width-1 do
begin

// Valeurs en rouge vert et bleu
mR := Scan[X].Rouge;
mV := Scan[X].Vert;
mB := Scan[X].Bleu;
// Transo en rgb
fin:=rgb(mr,mv,mb);

fin:=rgb(Scan[X].Rouge,Scan[X].Vert,Scan[X].Bleu ) xor ValXor;

 Scan[X].Rouge := getRvalue(fin);
 Scan[X].Vert  := getGvalue(fin);
 Scan[X].Bleu  := getBvalue(fin);

end;
end;
 DEimage.Refresh;
 gauge1.Progress:=0;

for y:=0 to DEimage.Picture.Bitmap.Height-1 do
begin
gauge1.Progress:=y;
Scan := DEimage.picture.Bitmap.ScanLine[Y];
for x:=0 to DEimage.Picture.Bitmap.Width-1 do
begin

// Valeurs en rouge vert et bleu
mR := Scan[X].Rouge;
mV := Scan[X].Vert;
mB := Scan[X].Bleu;
// Transo en rgb
fin:=rgb(mr,mv,mb);

 fin:=rgb(Scan[X].Rouge,Scan[X].Vert,Scan[X].Bleu ) shl ValSHL;


 Scan[X].Rouge := getRvalue(fin);
 Scan[X].Vert  := getGvalue(fin);
 Scan[X].Bleu  := getBvalue(fin);



end;
end;

 DEimage.Refresh;
 gauge1.Progress:=0;
end;



procedure PrCrypter(image:Timage;Gauge1:Tgauge;ValSHR:integer;ValXOR:integer);
var
Scan : TypePRGBArray;
x,y:integer;
ir,iv,ib,mv,mb,mr,Fin: Integer;
begin


gauge1.MaxValue:=image.Picture.Bitmap.Height-1 ;

for y:=0 to image.Picture.Bitmap.Height-1 do
begin
gauge1.Progress:=y;
Scan := image.picture.Bitmap.ScanLine[Y];
for x:=0 to image.Picture.Bitmap.Width-1 do
begin

// Valeurs en rouge vert et bleu
mR := Scan[X].Rouge;
mV := Scan[X].Vert;
mB := Scan[X].Bleu;
// Transo en rgb
fin:=rgb(mr,mv,mb);

 fin:=rgb(Scan[X].Rouge,Scan[X].Vert,Scan[X].Bleu ) shr ValSHR;

 Scan[X].Rouge := getRvalue(fin);
 Scan[X].Vert  := getGvalue(fin);
 Scan[X].Bleu  := getBvalue(fin);

end;
end;
                    
 image.Refresh;
 gauge1.Progress:=0;

for y:=0 to image.Picture.Bitmap.Height-1 do
begin
gauge1.Progress:=y;
Scan := image.picture.Bitmap.ScanLine[Y];
for x:=0 to image.Picture.Bitmap.Width-1 do
begin

// Valeurs en rouge vert et bleu
mR := Scan[X].Rouge;
mV := Scan[X].Vert;
mB := Scan[X].Bleu;
// Transo en rgb
fin:=rgb(mr,mv,mb);

fin:=rgb(Scan[X].Rouge,Scan[X].Vert,Scan[X].Bleu ) xor ValXOR;

 Scan[X].Rouge := getRvalue(fin);
 Scan[X].Vert  := getGvalue(fin);
 Scan[X].Bleu  := getBvalue(fin);

end;
end;
 image.Refresh;
 gauge1.Progress:=0;

end;

Conclusion

Marche ac SCanline

Bon pr savoir decrypter son image faut pas perdre les 2 valeurs de cryptage

PS: si vous mettez une valeurs de cryptage trop grand a shr votre image sera mauvaise
 

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Historique

16 janvier 2006 21:09:59 :
tromper de zip et d image la total !!!
17 janvier 2006 21:32:53 :
Pour delphiProg

Commentaires et avis

signaler à un administrateur
Commentaire de Delphiprog le 16/01/2006 23:37:23 administrateur CS

Cette technique s'appelle la stéganographie. Plusieurs codes ont été déposés sur delphifFr : http://tinyurl.com/c73c9
C'est donc le nième code sur ce sujet.

signaler à un administrateur
Commentaire de JulioDelphi le 17/01/2006 16:35:30 administrateur CS

La stéganograpgie est l'art de cacher des messages dans une donnée (une image ici) mon cher ami :p et non pas simplement de crypter/cacher/modifier_les_pixels d'une image.
wala

signaler à un administrateur
Commentaire de Nicolas___ le 17/01/2006 18:28:10

je sais ce qu'est la stenographie et je n ai jamais dis que ce code etait de la Stenographie puisque comme la dis julioDelphi je modifie juste les pixels de l'image...

Si j ai mis ce code ici c'est pour cette raison puisque ce n'est pas ca ...

Bon d accord le code n'est pas revolutionnaire mais pour ce qui ne connaise pas les instruction xor shr et shl(comme moi il n'y a pas longtemps !) c'est un code qui peut montrer a quoi cela peut servir .
Et je pense que montrer cela plus simplement permet de comprendre clairement a quoi ca peut servir.
Au lieu de montrer des choses plus complexe(d ailleurs mon codes est mis en debutant ) je montre une simple utilisation

A votre guise de le perfectionner

Ciao
Nico  

signaler à un administrateur
Commentaire de JulioDelphi le 17/01/2006 18:33:37 administrateur CS

Je parlais à DelphiProg justement !

signaler à un administrateur
Commentaire de Nicolas___ le 17/01/2006 19:07:07

Je sais ya pas de prob je lui disais juste le pourquoi du comment de cette souce !

Ciao
Nico

signaler à un administrateur
Commentaire de Delphiprog le 17/01/2006 19:58:20 administrateur CS

Alors, autant pour moi, je n'aurais pas dû parcourir le code en diagonale. La présence d'images a fortement influencé mon esprit à l'heure où j'écrivais. Mea culpa et mes plus plates excuses et pour ce commentaire inapproprié ici.
Cela dit, si le code démontre ce que tu affirmes, en revanche il n'est que moyennement réutilisable. Si l'on veut traiter plusieurs images d'affilée, il faudra modifier le code source et sortir ce qui est réellement utile au cryptage d'images.
C'est une erreur monumentale que de lier son code à des éléments d'une interface utilisateur. Le jour où tu auras besoin de réutiliser ton magnifique algorithme, tu t'apercevras que tu as plus vite fait de tout réécrire.
Essaie de faire cette transposition maintenant, tant que le code est frais dans ta tête, et tu verras que tu n'en retireras que des bénéfices...et toute ma considération. ;o)

signaler à un administrateur
Commentaire de Nicolas___ le 17/01/2006 21:34:53

Slt DelphiProg ,
Est ca que tu me demandais ???
ou alors est ce que je n est rien compris ?!
Slt
Nico

signaler à un administrateur
Commentaire de JulioDelphi le 17/01/2006 21:43:20 administrateur CS

Oui c'est ça =) super, c'est bien plus simple à réutiliser.

signaler à un administrateur
Commentaire de Delphiprog le 18/01/2006 09:05:37 administrateur CS

C'est tout à fait de ça que je parlais.
Félicitations pour la transformation et la réactivité.

signaler à un administrateur
Commentaire de Den le 24/01/2006 15:10:36

Pour un débutant c'est un excellent travail
   On ne peut que le féliciter..... je note 10/10

signaler à un administrateur
Commentaire de Nicolas___ le 24/01/2006 18:23:42

Merci ;)

enfin un prob subsiste tu note 10/10 et j ai un 2/10 ... enfin j ai pas dis que ct toi

Merci a toi

nico

signaler à un administrateur
Commentaire de Den le 24/01/2006 19:03:38

Excuse moi, j'ai la confirmation par ton message car il m'a semblé mal cliqué pour afficher la note, et il est impossible de le refaire.

Bon n'en tient pas compte tu mérite 10/10.  

signaler à un administrateur
Commentaire de JulioDelphi le 24/01/2006 19:43:12 administrateur CS

j'ai supprimé la note 2/10 de Den, tu peux remettre un 10/10 si tu peux, si tu ne peux pas, fais le moi savoir den, merci.

signaler à un administrateur
Commentaire de Den le 24/01/2006 21:14:46

Merci à JulioDephie, j'ai remis la bonne de 10/10

signaler à un administrateur
Commentaire de Nicolas___ le 24/01/2006 22:21:22

Merci JulioDelphi et Re-Merci den
Ciao
Nico

signaler à un administrateur
Commentaire de Bidou le 12/08/2006 19:00:20 administrateur CS

Nicolas____> Petite précison : on ne dit pas stenographie mais stéganographie

signaler à un administrateur
Commentaire de Nicolas___ le 12/08/2006 20:32:14

Salut Bidou, Ouep !

Mauvaise lecture une fois et voila ce que cela donne : un mot que l'on garde erroné ...

Bon si je suis vraiment de mauvais jeu je peux toujours dire que c'est une faute de frappe !!!

lol

Ciao

Merci pour la correction ...

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

Image de fond dans un TreeView [ par Valérie ] Bonjour, J'utilise une application DELPHI6 CLX et je n'aarive pas à avoir une image de fond dans mon TreeView. L'événement OnPaint n'existe pas. Si image du bureau a intervalle regulier [ par tarik ] salut je voudrais faire des sauvegardes de l'etat du bureau (une sorte d'imprime ecran) a intervalle regulier image ds un richedit [ par sebrs1 ] comment inserer une image ds un richedit? tbitbtn avec image format jpeg [ par vib ] existe il un composant ou une solution pour avoir un bouton du genre bitbtn avec une image au format jpeg ?A+ Image dans une TStatusBar !!! [ par MAsterC ] Comment fait-on pour mettre un Tprogresbar et un petit dessin dans l'item TStatusBar ????POUR PLUS DE DÉTAILS ALLER VOIR DANS INTERNET EXPLORER EN BAS Sacré Mikey, c jamais ou il est! :: Prob localisation souris [ par Gysmo ] Salut a tous!Voila j'ai creer sur mon prog des bontons avec des TImage superposé. Kan on click ca change d'image, une image bouton normal, une image b Texte sur une image [ par Gysmo ] Comment arrivé à écrir du texte sur une image puis la sauvegarder comme tel??!Merci Comment crypter un EXE? [ par Manthis ] Salut,je voudrais savoir comment crypter un fichier EXE alors si qqn as du source ou une DLL à me proposer je le remercie d'avance de tout coeur.Manth Imprimer une image et un texte sur la même feuille [ par zeusnul ] Bonjour,J'aimerais pouvoir imprimer une image et un texte sur la même feuille, mais je suis dans l'incapacité de trouver ça dans l'aide de delphi. Je ImageList ... Help ! ;-) [ par HEproduct ] Bonjour, je voudrai stocker des images de trés petites tailles dans une image lit et récupérer les noms dans une list box. Après quoi l'utilisateur en


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



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
Temps d'éxécution de la page : 1,232 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.