bonjour à tous,
Je suis totalement néophyte sous excel et aimerait obtenir une sorte de digest sur 8 octets d'une cellule.
Est-ce possible ?
Merci,
Fulst'
bonjour à tous,
Je suis totalement néophyte sous excel et aimerait obtenir une sorte de digest sur 8 octets d'une cellule.
Est-ce possible ?
Merci,
Fulst'
Où Plage est un range Ex :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 For each Cell in plage If len(Cell) => 8 then 'si la longueur du texte = ou est supérieur à 8... msgbox left(cell,8) '... on raccourcit else msgbox Cell 'sinon on lit le texte tel qu'il est endif Next
Déclare
Code : Sélectionner tout - Visualiser dans une fenêtre à part Set Plage = Range(Cells(PremiereLigne, NoColonne), Cells(NoDerniereLigne, NoColonne))
Code : Sélectionner tout - Visualiser dans une fenêtre à part Dim Plage as Range, cell as range
Merci pour ta réponse...
Cela dit, j'entendais une sorte de digest à la md5, pas un gauche(xxx;8)
Je me suis mal exprimé.
Ok désolé ...
Admettons que j'ai les deux cellules suivantes
un md5 de la concatenation de A1 et B1 me donne 83eb3b6ccc62b08f530aee4242c38c7b
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 A1 B1 ANTOINE BRANDU
Ce code me servira plus tard.
Ma question est : "Existe-t-il un moyen d'appeler une fonction md5 dans Excel." ?
Merci
Tu parles d'un digest !
Pour le béotien que je suis, peux-tu nous en dire plus sur la méthode qu'utilise md5 pour "résumer" ANTOINE GLANDU en 83eb3b6ccc62b08f530a... ?
et où as-tu trouvé ce md5 ?
http://www.freevbcode.com/ShowCode.Asp?ID=3779 par exemple
ben c'est une des bases de crypto. Même si md5 est réputé faillible depuis quelque temps, c'est une méthode ultra répandue pour hasher une chaine de caractère, par exemple pour stocker les mots de passe de manière irreversible !
je pense que le post du dessus peut répondre à ma question !
merci qd même
Vite fait,sous VBE importer clsCryptoAPI et clsMD5 de http://www.freevbcode.com/ShowCode.Asp?ID=3779
puis dans ThisWorkbook
Qui donne pour ANTOINEBRANDU 83EB3B6CCC62B08F530AEE4242C38C7B
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 Option Explicit Sub TstMD5() Dim strTmp As String Dim cCrypto As clsCryptoAPI Set cCrypto = New clsCryptoAPI strTmp = cCrypto.CreateHash(ShTest.Cells(1, 1), 1) ShTest.Cells(1, 2) = strTmp Set cCrypto = Nothing End Sub
Ou sous forme de fonction personnalisée
Création Fonction Personnalisée
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 Public Function HashMD5(ByVal s As String) As String Dim strTmp As String Dim cCrypto As clsCryptoAPI Set cCrypto = New clsCryptoAPI strTmp = cCrypto.CreateHash(s, 1) Set cCrypto = Nothing HashMD5= strTmp End Function
_______________________________
Le code est à placer dans un Module standard
[Alt+F11] Menu Insertion | Module
Ensuite sous Excel
Sélectionner la cellule de destination
Menu Insertion | Fonction | Catégorie : Personnalisées
Sélectionner la Fonction_Désirée
l'assistant apparait etc
Sinon par Exemple A2 =Fonction_Désirée(A1)
soit ici A2 =HashMD5(A1)
Merci pour ta clarté !
C'est génial, ça marche. j'ai tout ce qu'il faut maintenant.
Merci à tous !
Merci pour ton explication. J'appelais ça crypter. Et comme, je me suis fait mon outil pour crypter de manière irréversibles les nom et prénom de mes clients, je me suis jamais inquiété d'une méthode existante. Cryptage qui, pour "ANTOINE GLANDU" donnerait 1876071537F9B0189B85E.
Je n'ai peut-être pas autant de chiffres que toi mais pour un petit logiciel à diffusion confidentielle, vendu à des non spécialistes, c'est bien suffisant.
Maintenant, tu sais ce qui te dit le "gros lourd" ? 2A818E7E76C72CFB29 ! Et j'en passe !
Ouhla ... alors autant tout de suite mettre les choses au point.
1- Lorsque je disais "gros lourd", je ne parlais que de moi, cela fait trop longtemps que je pratique ce forum (même si le nombre de post à été remis à zéro plusieurs fois). Je n'oserai jamais lancer ce genre de pique ici, de plus, sans raison.
2- Pour ta gouverne, sache qu'en terme de crypto, il vaut toujours mieux utiliser ce qui existe car un algo public est soummis à des attaques qui permettent d'en tester la robustesse. J'ai moi même utilisé mes propres algos pendant un temps et dois bien reconnaitre que c'était une erreur. En matière de crypto, on protège rarement en occultant les détails d'implémentation. Il y a fort à parier que la plupart des algos maison peuvent être explosés en un rien de temps.
3- Enfin, le terme "cryptage" est à bannir
4- Je ne suis pas un pro du chiffrement .... juste un utilisateur qui souhaite que la méthode soit efficace et robuste
Encore merci en tout cas !
Fulst'
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager