|
Trouver une ressource
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 !
MODULE DE CRYPTAGE VIGENÈRE
Information sur la source
Description
Simple module d'encryption de texte en Vigenère. Il est basé sur : Asc(lettre à crypter) + Asc(lettre clé) = Asc(lettre chiffrée)
Source
- Option Explicit
-
- Private Function CombienDeFoisMettreDedans(s As String, key As String) As Integer
- 'Verif de la longueur de la clé
- If Len(s) > Len(key) Then
- Dim newLen As Integer
- newLen = Len(key) * (Len(s) / Len(key))
- CombienDeFoisMettreDedans = newLen
- Else
- CombienDeFoisMettreDedans = 1
- End If
- End Function
-
- Public Function VigenereEncrypt(s As String, key As String) As String
- 'Verif de la longueur de la clé
- If Len(s) > Len(key) Then
- Dim newLen As Integer
- Dim newKey As String
- Dim j As Integer
- newLen = CombienDeFoisMettreDedans(s, key)
- For j = 1 To newLen
- newKey = newKey & key
- Next j
- key = newKey
- End If
-
- Dim i As Integer
- Dim tmp1 As Integer, tmp2 As Integer, tmp3 As String
- For i = 1 To Len(s)
- tmp1 = Asc(Mid(s, i, 1))
- tmp2 = Asc(Mid(key, i, 1))
- If Not tmp1 + tmp2 > 255 Then
- tmp3 = tmp3 & Chr(tmp1 + tmp2)
- Else
- tmp3 = tmp3 & "{?}"
- End If
- Next i
- VigenereEncrypt = tmp3
- End Function
-
- Public Function VigenereDecrypt(s As String, key As String)
- 'Verif de la longueur de la clé
- If Len(s) > Len(key) Then
- Dim newLen As Integer
- Dim newKey As String
- Dim j As Integer
- newLen = CombienDeFoisMettreDedans(s, key)
- For j = 1 To newLen
- newKey = newKey & key
- Next j
- key = newKey
- End If
-
- s = Replace(s, "{?}", "")
-
- Dim i As Integer, tmp2 As Integer, tmp3 As String
- For i = 1 To Len(s)
- tmp1 = Asc(Mid(s, i, 1))
- tmp2 = Asc(Mid(key, i, 1))
- If tmp1 < tmp2 Then
- tmp3 = tmp3 & "{?}"
- Else
- tmp3 = tmp3 & Chr(tmp1 - tmp2)
- End If
- Next i
- VigenereDecrypt = tmp3
- End Function
Option Explicit
Private Function CombienDeFoisMettreDedans(s As String, key As String) As Integer
'Verif de la longueur de la clé
If Len(s) > Len(key) Then
Dim newLen As Integer
newLen = Len(key) * (Len(s) / Len(key))
CombienDeFoisMettreDedans = newLen
Else
CombienDeFoisMettreDedans = 1
End If
End Function
Public Function VigenereEncrypt(s As String, key As String) As String
'Verif de la longueur de la clé
If Len(s) > Len(key) Then
Dim newLen As Integer
Dim newKey As String
Dim j As Integer
newLen = CombienDeFoisMettreDedans(s, key)
For j = 1 To newLen
newKey = newKey & key
Next j
key = newKey
End If
Dim i As Integer
Dim tmp1 As Integer, tmp2 As Integer, tmp3 As String
For i = 1 To Len(s)
tmp1 = Asc(Mid(s, i, 1))
tmp2 = Asc(Mid(key, i, 1))
If Not tmp1 + tmp2 > 255 Then
tmp3 = tmp3 & Chr(tmp1 + tmp2)
Else
tmp3 = tmp3 & "{?}"
End If
Next i
VigenereEncrypt = tmp3
End Function
Public Function VigenereDecrypt(s As String, key As String)
'Verif de la longueur de la clé
If Len(s) > Len(key) Then
Dim newLen As Integer
Dim newKey As String
Dim j As Integer
newLen = CombienDeFoisMettreDedans(s, key)
For j = 1 To newLen
newKey = newKey & key
Next j
key = newKey
End If
s = Replace(s, "{?}", "")
Dim i As Integer, tmp2 As Integer, tmp3 As String
For i = 1 To Len(s)
tmp1 = Asc(Mid(s, i, 1))
tmp2 = Asc(Mid(key, i, 1))
If tmp1 < tmp2 Then
tmp3 = tmp3 & "{?}"
Else
tmp3 = tmp3 & Chr(tmp1 - tmp2)
End If
Next i
VigenereDecrypt = tmp3
End Function
Conclusion
Merci à SimonKari (URL du commentaire - http://www.csharpfr.com/code.aspx?ID=25294) pour la formule !
Historique
- 29 novembre 2006 22:05:12 :
- Correction de bugs ... (dans le commentaire de violent_ken)
- 29 novembre 2006 22:07:09 :
- J'avais oublié dans la fonction VigenereDecrypt ...
Sources du même auteur
Sources de la même categorie
Sources en rapport avec celle ci
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
CRYPTAGE PAR XOR [ par tekila_bandita ]
Je suis en train d'ESSAYER de créer un petit prog de cryptage de fichier au niveau binaire par xor, mais je rencontre quelque probleme, voicila p
rand [ par imanedaoudi ]
Bonjour, je veux generer des float avec 3 chiffre apres la firgule et les ecrire dans un fichier txt j'ai utilisé la fonction suivante: void vecteur::
chaine de caractère aléatoire sans [ par moi4975 ]
voila je suis entrain de créer un programme pour crypter un fichier texte !Le logiciel permet de générer un clé aleatoire !Comment
Indiquer s' il s' agit d' un chiffre ou pas [ par SpoS ]
Bonjour à tous, Voila en essayant de creer un peti programme je me heurte a un "petit" obstacle, je voudrai en gros encrit en ligne de code : S
Cryptage [ par tinux ]
Bonjour, je souhaite créer un programme de cryptage/decryptage de texte en y inserant une clef. ==> L'utilisateur rentre son texte, entre une
Cryptage [ par tinux ]
Bonjour, je suis en train de réaliser une appli contenant 2 textBox, 1 bouton. Le but de cet appli : => L'utilisateur rentre son texte ds text
Excel combobox [ par takin55 ]
Bonjour a a tous voila mon probleme Je cherche a créer 2 combobox avec les fonctions suivantesDans la premiere je veux choisir "Chiffre" ou "Lett
convertir un chiffre en chaines de caracteres!! [ par aminix9 ]
Bonjour à vous tous,j ai besoin d'une fonction qui prend com argument un chiffre kelkonk et retourne ce chiffre ecrit en lettres!!cad
séparer des chiffres vba [ par TTHIERRY ]
bonjour,j'es un chiffre que je dois séparer en 11, je m'explique le chiffre en question 123456789123 le resultat doit être ecris dans des la
creation d'un sonometre [ par nicodada ]
Je souhaiterais créer un sonometre mais mon premier probleme est de convertir le son en force; sur une echel de 10, plus le son est fort plus le
|
Téléchargements
Logiciels à télécharger sur le même thème :
|