begin process at 2012 02 12 15:47:24
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Sécurité

 > CRYPTAGE D'UNE CHAÎNE DE CARACTÈRE AVEC LA GRILLE DE VIGÉNÈRE

CRYPTAGE D'UNE CHAÎNE DE CARACTÈRE AVEC LA GRILLE DE VIGÉNÈRE


 Information sur la source

Note :
8,5 / 10 - par 2 personnes
8,50 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Sécurité Niveau :Initié Date de création :10/05/2002 Date de mise à jour :11/05/2002 22:05:33 Vu / téléchargé :4 335 / 277

Auteur : Hypopotamus

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

 Description

La fonction Vigénère() permet de crypter une chaîne de caractère de manière efficace.
Par rapport à d'autres techniques de cryptage, Vigénère apporte deux avantages:

Premier avantage

Un même caractère dans le texte peut être codé différemment: plus le code est long (c'est-à-dire au moins aussi long que le texte à coder) et différencié (c'est-à-dire avec le moins possible de caractère identique), plus il y a de chance pour que plusieurs mêmes caractères soit codés différemment.

Deuxième avantage

Il est impossible - du moins à ma connaissance - de décodé le texte codé sans le code. Essayez.  

Source

  • Function Vigénère(S As String, Code As String, Encode As Boolean) As String
  • Dim i, j, s_Longueur, n As Integer
  • Dim s_codé As String
  • j = 1
  • s_Longueur = Len(S)
  • s_codé = ""
  • For i = 1 To s_Longueur
  • If Encode Then
  • n = Asc(Mid(S, i, 1)) + Asc(Mid(Code, j, 1)) + 1
  • Else
  • n = Asc(Mid(S, i, 1)) - Asc(Mid(Code, j, 1)) - 1
  • End If
  • If n > 255 Then n = n - 255
  • If n < 0 Then n = 255 + n
  • s_codé = s_codé + Chr(n)
  • j = j + 1
  • If j > Len(Code) Then j = 1
  • Next i
  • Vigénère = s_codé
  • End Function
Function Vigénère(S As String, Code As String, Encode As Boolean) As String
 

  Dim i, j, s_Longueur, n As Integer
  Dim s_codé As String  

    j = 1
    s_Longueur = Len(S)
    s_codé = ""    

    For i = 1 To s_Longueur
      If Encode Then
        n = Asc(Mid(S, i, 1)) + Asc(Mid(Code, j, 1)) + 1
      Else
        n = Asc(Mid(S, i, 1)) - Asc(Mid(Code, j, 1)) - 1
      End If
      If n > 255 Then n = n - 255
      If n < 0 Then n = 255 + n
      s_codé = s_codé + Chr(n)
      j = j + 1
      If j > Len(Code) Then j = 1
    Next i    

    Vigénère = s_codé 

End Function
 
  

 Conclusion

Pour de plus amples explications sur le fonctionnement de la fonction Vigénère, référrez-vous au fichier ZIP joint.  

 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

MOUSEOUTOFWINDOW() AVEC LES API WINDOWS
Source avec Zip RESSOURCES CONCERNANT LES API WINDOWS
Source avec Zip MOT DE PASSE WINDOWS EFFICACE

 Sources de la même categorie

Source avec Zip Source avec une capture Source .NET (Dotnet) CHIFFREMENT XOR PLUS ROBUSTE par dheroux
Source avec Zip CRYPTAGE MARANT par alpha5
Source avec Zip ACCÈS PAR MOT DE PASSE À FEUILLE EXCEL par mimiZanzan
Source avec Zip CRYPTER-DÉCRYPTER UN TEXTE - TEXTE CRYPTÉ UNIQUEMENT EN MAJ... par Saintache
Source avec Zip Source avec une capture FOLDER PROTECTION par hackoo

Commentaires et avis

Commentaire de deedstacktyk le 10/05/2002 10:06:47

Tiens, c'est bizarre mais je crois que j'ai déjà vu ce code dans un magazine, mais pour ce qui est de le casser, en brute force c'est surement possible de tester toutes les clefs(rappel, clef de 1 caractere de long = 224 possibilités,etc)

Commentaire de deedstacktyk le 10/05/2002 10:06:54

Tiens, c'est bizarre mais je crois que j'ai déjà vu ce code dans un magazine, mais pour ce qui est de le casser, en brute force c'est surement possible de tester toutes les clefs(rappel, clef de 1 caractere de long = 224 possibilités,etc)

Commentaire de deedstacktyk le 10/05/2002 10:07:23

Tiens, c'est bizarre mais je crois que j'ai déjà vu ce code dans un magazine, mais pour ce qui est de le casser, en brute force c'est surement possible de tester toutes les clefs(rappel, clef de 1 caractere de long = 224 possibilités,etc)

Commentaire de deedstacktyk le 10/05/2002 10:07:33

Tiens, c'est bizarre mais je crois que j'ai déjà vu ce code dans un magazine, mais pour ce qui est de le casser, en brute force c'est surement possible de tester toutes les clefs(rappel, clef de 1 caractere de long = 224 possibilités,etc)

Commentaire de neojoce le 10/05/2002 20:53:12

C la methode XOR

Commentaire de fkiller001 le 11/05/2002 13:55:00

moi, j'en ai rien a faire que tu soit une espece de llamer a la con ou un genis, j'aimerai bien que qq m'explique comme sa marche ou que l'on me dise ou je peut trouver sa, merci.

Fki.
@+

Commentaire de aKheNathOn le 24/05/2002 23:53:40

Oki je vois le style d'algo ... neojoce , lis un peu le code avant de parler ... xor c'est loin d'être ça ...

Methode XOR :

ASC(A) = 65 -&gt; 1000001  &lt;---- Lettre à coder
ASC(C) = 67 -&gt; 1000011  &lt;---- Clef permettant le codage
Reésultat :        
1 / 1 = 0
0 / 0 = 1
1 / 0 = 1

Bréf la le texte crypté est : 0111110 = 62 --&gt; '&gt;'

Bréf voilà l'algorithme XOR .

Pour l'algorithme utilisé ici , on passe plus par le binaire mais :

ASC(A) = 65
ASC(C) = 67

Resultat = 65-67 = -2

Avec les conditions If , si le résultat est négatif alors : Résultat = 255+Résultat négatif
Si le résultat est supérieur à 255 , alors le résultat est : Résultat-255

Bréf c'est un algorithme non bijectif , le seul point faible c'est qu'il ne crypte pas vraiment avec efficacitée si les valeurs sont faibles , et les résultats sont linéaires si me mdp est trop petit par rapport à la longeur du texte crypté ... en quelques mots il est bien pour des donées du style fichiers exe , bin , doc mais pas pour les fichiers contenant du simple texte ...

Commentaire de diablotin le 01/03/2003 13:14:00

Question comment on utulise ta source pour codé et décoder car j'aimerais bc le savoir c'est comme tre utulile pour une source ici
si je te dirais 4 sans te dire 2+2 tu comprenderais pas pourquoi j'aurais dit 4,.......

Commentaire de cbu le 08/07/2003 11:23:27

Tu peux mettre ta source en .Net egalement si tu veux ..
A+
Bon boulot

Commentaire de niluje le 13/07/2004 11:07:48

ou peut-on trouver la fonction pour décrypter les informations ?

Commentaire de foliv57 le 10/10/2007 10:52:25 8/10

Remplace :

If n > 255 Then n = n - 255
If n < 0 Then n = 255 + n

par :

If n > 255 Then n = n - 256
If n < 0 Then n = 256 + n

J'explique :

si le caractère a codé est "ÿ" (Asc(ÿ)=255) (et oui le pire je sais =)
et que le caractère de la clef est "ÿ"

le code sera égale à 255 + 255 + 1 = 511

donc n > 255 et si tu fais -255 => 511 - 255 = 256
et la, boulette, Chr(256) je vous laisse imaginer l'insulte de notre bon vieux debogeur.

=)

Pour le reste c'est nikel. Bonne source
Il y a possibilité aussi de le rendre plus performant en supprimant la concaténation, car il semblerait que l'instruction s_codé = s_codé + Chr(n) utilise beaucoup de ressource.

pour se faire tu crées une chaine de la taille de la chaine a crypter :
    s_Longueur = Len(S)
    s_codé = String(s_Longueur, Chr(0))

et à la place de s_codé = s_codé + Chr(n) tu mets :
    Mid(s_codé, i, 1) = Chr(n)

Mais bon c'est pas vitale, c'est pour info

 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,030 sec (4)

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