Utilisation d'une fonction de cryptage/decryptage rc5 dans une dll (voir langage c)

Soyez le premier à donner votre avis sur cette source.

Vue 7 293 fois - Téléchargée 621 fois

Description

J'ai été amené à rechercher un algorithme de CRYPTAGE plus ou moins officiel, pour utilisation depuis plusieurs applications, dont une sous EXCEL.
J'ai trouvé un document de référence sur le cryptage RC5, et ai implémenté l'algorithme dans une DLL perso.

Vous avez en téléchargement:
- le dcument de référence (Ronald L.Rivest MIT 1997): pdf en anglais (Rivest-rc5rev.pdf)
- un résumé en français (Word) (Cryptage RC5.doc)
- le code source de la DLL, en C (inforom.c)
- la DLL (inforom.dll)
- un exemble VBA pour l'appel des fonctions (module1.bas)... affiché ci-dessous

AVERTISSEMENT! J'ai trouvé ce document sur INTERNET, et n'AI PAS VERIFIE LA SOURCE. Quant à la DLL, j'ai adapté le code original pour travailler sur des chaines. Il n'engage donc personne d'autre que moi...

Je posterai aussi un sujet dans le domaine 'C,C++,...', avec les mêmes fichiers, pour commenter le source de la dll.. n'hésitez pas à vous y reporter

Source / Exemple :


' Déclaration des fonctions externes... indiquez le chemin d'accès à la DLL...
Public Declare Function crypte Lib "C:\REPERTOIRE...\inforom.dll" Alias "_crypte@12" _
    (ByVal chaine As String, ByVal code As String, ByVal Cle As String) As Boolean
Public Declare Function decrypte Lib "C:\REPERTOIRE...\inforom.dll" Alias "_decrypte@12" _
    (ByVal code As String, ByVal chaine As String, ByVal Cle As String) As Boolean

Public Sub TestDll()
Dim bidon As String
Dim bidon2 As String

' test pour vérifier le fonctionnement du cryptage

' texte à crypter, en ligne 1
bidon = Cells(1,2)
' calcul de la taille pour le résultat (ici on a parfois 10 octets de trop, mais c pô grave!)
tc = 10 * (1 + Len(bidon) / 8)
' on doit obligatoirement allouer la place suffisante en mémoire ...
bidon2 = Space(tc)

' Cryptage, résultat en ligne 2
' ATTENTION! la clé ne doit pas dépasser 16 octets !
crypte bidon, bidon2, "C'est ma clé"
Cells(2, 2) = bidon2

're-décryptage pour vérifier... avec la même clé
decrypte bidon2, bidon, ""
Cells(3, 2) = bidon

End Sub

Conclusion :


Ce source n'a d'intérêt que pour ceux qui ne maîtrisent pas les appels externes, il se contente d'afficher le résultat du cryptage de la chaine donnée en B1, puis de vérifier que la fonction inverse redonne bien le même résultat.
Il ne vous donne aucune info sur l'algorithme lui-même... reportez vous donc au sujet associé au source en C.

Je rajoute ici que l'implémentation que j'ai faite est limitée aux options 'nominales' déterminées par R.L. Rivest:
- mots de 32 bits
- 12 itérations
- CLE DE 16 CARACTERES MAXIMUM.

Pour moi ce sujet est assez nouveau et je suis preneur de toute information complémentaire, etc... sauf que je n'ai tout de même pas l'intention d'y passer mes nuits... pour mes besoins perso ce cryptage me paraît largement suffisant...

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.