IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Comment obtenir le digest d'une cellule sur 8 caractères ?


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Inscrit en
    Juillet 2002
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 30
    Points : 25
    Points
    25
    Par défaut Comment obtenir le digest d'une cellule sur 8 caractères ?
    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'

  2. #2
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    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
    Où Plage est un range Ex :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set Plage = Range(Cells(PremiereLigne, NoColonne), Cells(NoDerniereLigne, NoColonne))
    Déclare
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim Plage as Range, cell as range

  3. #3
    Nouveau membre du Club
    Inscrit en
    Juillet 2002
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 30
    Points : 25
    Points
    25
    Par défaut
    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é.

  4. #4
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par fulster Voir le message
    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é.
    Bonjour

    Peux-tu détailler un peu plus.

    Starec

  5. #5
    Nouveau membre du Club
    Inscrit en
    Juillet 2002
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 30
    Points : 25
    Points
    25
    Par défaut
    Citation Envoyé par Starec Voir le message
    Bonjour

    Peux-tu détailler un peu plus.

    Starec
    Ok désolé ...
    Admettons que j'ai les deux cellules suivantes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    A1      B1
    ANTOINE BRANDU
    un md5 de la concatenation de A1 et B1 me donne 83eb3b6ccc62b08f530aee4242c38c7b

    Ce code me servira plus tard.

    Ma question est : "Existe-t-il un moyen d'appeler une fonction md5 dans Excel." ?

    Merci

  6. #6
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    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 ?

  7. #7
    Expert éminent sénior
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Points : 11 274
    Points
    11 274

  8. #8
    Nouveau membre du Club
    Inscrit en
    Juillet 2002
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 30
    Points : 25
    Points
    25
    Par défaut
    Citation Envoyé par ouskel'n'or Voir le message
    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 ?
    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

  9. #9
    Nouveau membre du Club
    Inscrit en
    Juillet 2002
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 30
    Points : 25
    Points
    25
    Par défaut
    Citation Envoyé par kiki29 Voir le message
    à mon tour de jour le gros lourd ... je suis béotien en matière de Excel/VB ...
    Je fais comment pour intégrer ces fonctions dans Excel ?

  10. #10
    Expert éminent sénior
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Points : 11 274
    Points
    11 274
    Par défaut
    Vite fait,sous VBE importer clsCryptoAPI et clsMD5 de http://www.freevbcode.com/ShowCode.Asp?ID=3779

    puis dans ThisWorkbook
    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
    Qui donne pour ANTOINEBRANDU 83EB3B6CCC62B08F530AEE4242C38C7B

    Ou sous forme de 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
    Création Fonction Personnalisée
    _______________________________

    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)

  11. #11
    Nouveau membre du Club
    Inscrit en
    Juillet 2002
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 30
    Points : 25
    Points
    25
    Par défaut
    Merci pour ta clarté !
    C'est génial, ça marche. j'ai tout ce qu'il faut maintenant.

    Merci à tous !

  12. #12
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Citation Envoyé par fulster Voir le message
    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 !
    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 !

  13. #13
    Nouveau membre du Club
    Inscrit en
    Juillet 2002
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 30
    Points : 25
    Points
    25
    Par défaut
    Citation Envoyé par ouskel'n'or Voir le message
    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'

Discussions similaires

  1. Réponses: 7
    Dernier message: 01/07/2014, 20h13
  2. Comment obtenir les coordonnées d'une cellule?
    Par Antoine505 dans le forum Excel
    Réponses: 1
    Dernier message: 23/10/2013, 11h55
  3. [CSS 2.1] Comment aligner le contenu de ma cellule sur une ligne
    Par pierrot10 dans le forum Mise en page CSS
    Réponses: 1
    Dernier message: 16/06/2009, 07h31
  4. Réponses: 5
    Dernier message: 30/05/2006, 12h29
  5. Comment obtenir le nom d'un pc sur un réseau?
    Par Depteam1 dans le forum MFC
    Réponses: 2
    Dernier message: 19/02/2004, 10h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo