begin process at 2013 05 23 00:03:03
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Compression & Split

 > CRYPTAGE ET DÉCRYPTAGE DE CHAINE

CRYPTAGE ET DÉCRYPTAGE DE CHAINE


 Information sur la source

Note :
8,25 / 10 - par 4 personnes
8,25 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Compression & Split Niveau :Débutant Date de création :26/01/2005 Vu :37 825

Auteur : retaks666

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

 Description

Voici deux fonctions qui servent a decrypter et a crypter des chaines: c'est mon premier programme delphi, en fait j'ai traduit une de mes sources vb en delphi, ça marche chez moi!

Source

  • {déclarations}
  • interface
  • uses
  • Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  • Dialogs, Borland.Vcl.StdCtrls, System.ComponentModel;
  • function crypter(chainetocrypt: String; cryptkey: String): string;
  • Function decrypter(chainetodecrypt: String; cryptkey: String): String;
  • {fonctions}
  • function crypter(chainetocrypt: String; cryptkey :String) :string;
  • var
  • crypte: String;
  • cpt,i: longint ;
  • begin
  • crypter := '';
  • cpt := 1;
  • For i := 1 To Length(chainetocrypt) do
  • begin
  • If cpt > Length(cryptkey) Then cpt := 1;
  • If integer(ord(chainetocrypt[i])) + integer(ord(cryptkey[cpt])) > 255 Then {on vérifie que la some du code ascii ne soit pas supérieur a 255 sinon erreu}
  • result := result + Char((integer(ord(chainetocrypt[i])) + integer(ord(cryptkey[cpt]))) - 255) {'si c'est le cas on enlève 255}
  • Else
  • result := result + Char(integer(ord(chainetocrypt[i])) + integer(ord(cryptkey[cpt]))); {'on ajoute le caractère crypté a la fonction}
  • cpt := cpt + 1;
  • end;
  • End;
  • Function decrypter(chainetodecrypt: String; cryptkey: String):String;
  • var
  • crypte: String;
  • cpt,i: longint ;
  • begin
  • decrypter := '';
  • cpt := 1;
  • For i := 1 To Length(chainetodecrypt) do
  • begin
  • If cpt > Length(cryptkey) Then cpt := 1;
  • If (integer(ord(chainetodecrypt[i])) - integer(ord(cryptkey[cpt]))) < 0 Then {'on vérifie que la some du code ascii ne soit pas inférieur a 0 sinon erreur}
  • result := result + Char((integer(ord(chainetodecrypt[i])) - integer(ord(cryptkey[cpt]))) + 255) {'si c'est le cas on ajoute 255}
  • Else
  • result := result + Char(integer(ord(chainetodecrypt[i])) - integer(ord(cryptkey[cpt]))); {'on ajoute le caractère décrypté a la fonction}
  • cpt := cpt + 1;
  • end;
  • End;
{déclarations}


interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Borland.Vcl.StdCtrls, System.ComponentModel;

    function crypter(chainetocrypt: String; cryptkey: String): string;
  Function decrypter(chainetodecrypt: String; cryptkey: String): String;

{fonctions}
   function crypter(chainetocrypt: String; cryptkey :String) :string;
   var
   crypte: String;
   cpt,i: longint ;
begin
crypter := '';
cpt := 1;
For i := 1 To Length(chainetocrypt) do
   begin
    If cpt > Length(cryptkey) Then cpt := 1;
        If integer(ord(chainetocrypt[i])) + integer(ord(cryptkey[cpt])) > 255 Then {on vérifie que la some du code ascii ne soit pas supérieur a 255 sinon erreu}
        result := result + Char((integer(ord(chainetocrypt[i])) + integer(ord(cryptkey[cpt]))) - 255) {'si c'est le cas on enlève 255}
    Else
        result := result + Char(integer(ord(chainetocrypt[i])) + integer(ord(cryptkey[cpt]))); {'on ajoute le caractère crypté a la fonction}

    cpt := cpt + 1;
end;

End;

Function decrypter(chainetodecrypt: String; cryptkey: String):String;
   var
   crypte: String;
   cpt,i: longint ;
begin
decrypter := '';
cpt := 1;
For i := 1 To Length(chainetodecrypt) do
begin
    If cpt > Length(cryptkey) Then cpt := 1;
        If (integer(ord(chainetodecrypt[i])) - integer(ord(cryptkey[cpt]))) < 0 Then {'on vérifie que la some du code ascii ne soit pas inférieur a 0 sinon erreur}
        result := result + Char((integer(ord(chainetodecrypt[i])) - integer(ord(cryptkey[cpt]))) + 255) {'si c'est le cas on ajoute 255}
    Else
        result := result + Char(integer(ord(chainetodecrypt[i])) - integer(ord(cryptkey[cpt]))); {'on ajoute le caractère décrypté a la fonction}

    cpt := cpt + 1;
end;
End;



 Sources du même auteur

Source avec Zip Source avec une capture COMPOSANT CONTENEURS D'OBJETS AVEC DRAG AND DROP FAÇON ASSIS...
Source avec Zip ALGORITHME BRUTEFORCE: ÉNUMÈRE TOUTE LES POSSIBILITÉS D'UN E...
Source avec Zip MCO VIEWER ET INSTALLER (MSN 7 WINKS AND MOODS)
Source avec Zip Source avec une capture [MSN7]AUTORISER LES TRANSFERTS DE FICHIER DE TOUTES LES EXTE...
Source avec Zip Source avec une capture PROTEGER L'ACCÈS DE VOS DOSSIER PAR MOT DE PASSE!

 Sources de la même categorie

Source avec Zip Source avec une capture UPXHELPER V1.1.1 par Christophe67
Source avec Zip Source avec une capture DELPHI : PROCEDURE SPLIT SIMILAIRE A LA FONCTION EPONYME EN ... par FENETRES
FONCTION SPLIT par crackspider7676
Source avec Zip STREAMZIP par simonpelloquin
Source avec Zip MAKE CAB + CHECKLISTBOX par simonpelloquin

Commentaires et avis

Commentaire de grandvizir le 26/01/2005 20:34:00

Juste une petite astuce:
si ton nombre est supérieur à 255, fait lui une sorte de modulo avec la "fonction" byte. Byte n'est pas une fonction mais une sorte de transcription.

byte(255)=255
byte(256)=0
byte(257)=1
...

C'est juste pour montrer que ça fait une boucle en enlevant 256 autant de fois que cela est nécessaire pour retomber dans l'intervalle [0..255].

Ca marche aussi avec integer.

Commentaire de retaks666 le 27/01/2005 21:07:08

ah bon je ne savais pas, en fait je me suis contenté de traduire ma source vb en delphi

Commentaire de seblulu59 le 22/06/2005 23:58:40

{chaine: à crypter/decrypter et key de la forme #1...#31}

function crypt_decrypt_xor(chaine:string;key:string):string;
var i,j:integer;
    s:string;
begin
s:='';j:=1;
for i:=1 to length(chaine) do
begin
  if j>length(key) then j:=1;
  s:=s+char(integer(ord(chaine[i])) xor integer(ord(key[j])));
  j:=j+1;
end;
Result:=s;
end;

Commentaire de pat_nat le 28/06/2005 22:16:55

J'ai un petit pb dans mes fonctions de cryptage et decryptage en language actionscript (macromedia flash mx). Certe ce n'est pas du delphi mais mes fonctions sont semblabmes aux votres.

Mon pb est que char(0) me renvoi rien du tout (chaine vide "")

Donc si par malheur ma fonction de cryptage me renvoie le char(0) pour un caractere, je me retrouve avec une chaine cryptée dont la taille est plus petite que l'origine (1 caratere en moins voir plus ...) et donc ma fonction de decryptage ne me renvoie pas la chaine d'origine.
Quelqu'un m a t il compris ? peut on m'aider ? Merci d'avance.

Commentaire de seblulu59 le 30/06/2005 20:21:08

Hello,

Le pb est que tu veux des codes ascii en sortie >= 32.
Il faut donc que tu fasses en sorte que la fonction de cryptage renvoie une valeur >=32 ... et <127
Si tu utilises une fonction type XOR, alors la valeur de la "clef" doit être comprise entre 1 et 31, démo :

    1 0 0 0 0 0 (32)
xor 0 1 1 1 1 1 (31)
=   1 1 1 1 1 1 (63)

    1 0 0 0 0 0 (32)
xor 0 0 0 0 0 1  (1)  
=   1 0 0 0 0 1 (33)

    1 0 0 1 0 1 (37)
xor 0 1 1 1 1 1 (31)
=   1 1 1 0 1 0 (58)

    1 0 0 1 0 1 (37)
xor 0 0 0 0 0 1  (1)  
=   1 0 0 1 0 0 (36)

    1 0 0 1 0 1 (36)
xor 0 1 1 1 1 1 (31)
=   1 1 1 0 1 0 (58)

etc ...

Commentaire de seblulu59 le 30/06/2005 20:23:11

http://www.lookuptables.com/

Commentaire de zorg66x le 07/04/2008 19:37:01

bjr a tous je suis nouveau et je n'y connait pas trop en informatique mais je voudrez savoir si c'est possible de décrypter les chaines crypter sur mon démodulateur tnt ,je vous remerçi d'avance pour l'info

Commentaire de retaks666 le 07/04/2008 19:40:59

Bonjour, il s'agit ici d'une chaîne de caractère, et non d'une chaîne de télévision. Vous faites fausse route ;)

Commentaire de cirec le 07/04/2008 20:55:13 administrateur CS

Zorg66x >
Oui c'est possible en payant l'abonnement mensuel !!!!!!!

Que les choses soient bien claire ... ce que tu demandes c'est du piratage et c'est illégal. Tu n'auras jamais satisfaction sur ce genre de question ici.

Et surtout toute récidive sera sanctionnée par une suppression pure et simple du compte.

Commentaire de zorg66x le 07/04/2008 21:52:58

je vous remerçi de votre reponse mais je ne veux pas devenir pirates mais je voudrez devenir et surtout savoir crée des programmes

Commentaire de cirec le 08/04/2008 00:16:41 administrateur CS

Dans ce cas tu es au bon endroit ... et je souhaite la bienvenue parmi nous.

Mais je te conseil de bien lire le règlement afin d'éviter à l'avenir ce genre de question qui sont, normalement, totalement interdites et sanctionnées immédiatement.

Pour le forum c'est pareil et avant de poser une question il faut faire une recherche avec le moteur du site et/ou Google ... en effet, plus 90% des questions de débutant on déjà trouvées réponses, il n'est donc plus utile de les reposer.

Voilà bonne chance pour la suite ... ;)

Commentaire de karino le 04/11/2010 19:36:46

Procedure cryptage(ch : chaine ; var ch2 : chaine)
Résultat = ch2
ch2 = [ch2 <-- "" ; c <-- ch[1] ; cpt <-- 1]
           Pour i de 2 à Long(Ch) Faire
               Si ch[i] = c Alors
                   cpt <-- cpt + 1
               Sinon
                   ConvCh(cpt, ch3)
                   ch2 <-- ch2 + ch2 + c
                   cpt <-- 1
                   c <-- ch[i]
               Fin Si
          Fin Pour
          ConvCh(cpt, ch3)
          ch2 <-- ch2 + ch2 + c

Commentaire de toutoufik le 15/04/2012 15:43:02

je le voir et apres je te repponds

 Ajouter un commentaire




Nos sponsors


Sondage...

CalendriCode

Mai 2013
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
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 : 0,374 sec (4)

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