Se connecter avec
S'enregistrer | Connectez-vous

Récuperation de mot de passe crypté dans un code vbs

Dernière réponse : dans Programmation

Bonjour
Suite à plusieurs recherche infructueuse,j'aimerai savoir si il existe un logiciel de mot passe qui me permet de récupérer un mot de passe crypter dans une variable en écrivant par exemple un mot,une phrase qui me permet d'avoir le mot de passe ou bien une chaine de caractère spécifique qui est lié au logiciel
Afin que personne puisse voir le mot de passe dans le cas d'une lecture du code vbs
J'espère avoir été assez clair dans mes propos
Merci d'avance
Lassé par la pub ? Créez un compte
Expert Programmation

Eh, en juillet, le we commence dès le vendredi midi. Tu postes à 11:21, à l'heure de l'apéro, qu'est-ce que tu espères ?

En fait, tu cherches à crypter puis à décrypter un mot de passe dans tes programmes.
Voilà un sujet intéressant.

En fait, je ne connais pas de "logiciel" pour faire ça, par contre, écrire une fonction pour crypter est assez facile. Reste à savoir si il est impératif de décrypter.

Vue ta question, je suis sûr que tu trouves particulièrement saugrenue l'idée de ne pas avoir à décrypter. Et pourtant, c'est comme cela qu'on fait. Regarde :
  • A la demande de création du mot de passe, on le crypte aussitôt avec la fonction de cryptage et on stocke la version cryptée.
  • A la demande d'utilisation du mot de passe, on le crypte aussitôt, on récupère la version cryptée et on compare les deux. Si c'est identique, le mot de passe est bon.

    Donc maintenant que ce principe est bien compris, j'espère que tu peux l'appliquer à ton cas.

    Il faut maintenant se trouver une fonction de cryptage. Alors, avec ou sans fonction inverse ?

    S'il te faut une fonction inverse (décryptage), regarde du côté des fonctions de chiffrements.
    Sinon, c'est du côté des fonctions de hachage.

    Quelques fonctions de chiffrement simples symétriques à clef secrète :
    Le chiffre de Cesar
    http://fr.wikipedia.org/wiki/Chiffre_de_C%C3%A9sar

    Très facile à coder en VB, je te laisse le soin de le faire.
    La clef est le décalage, ROT13 n'est que le trop simple code de César avec 13 comme clef (L'alphabet romain ne contenant que 20 lettres, cette clef à 26/2=13 ne peut être romaine)

    Chiffrement à phrase secrète
    Il nous faut pour ce cas une fonction bijective E, dont la réciproque E' est connue, et une clef.
    Soit la phrase "tes@idn est un petit cachotier". Elle servira de clef k.
    Soit la fonction Ou-exclusif, elle servira de fonction E. La réciproque est connue, c'est elle-même, E=E'.

    En VB :
    1. Sub TestChiffrement()
    2. Dim K As String
    3. Dim M As String
    4. Dim C As String
    5. Dim D As String
    6.  
    7. K = "teseatidnestunpetitcachotier"
    8.  
    9. M = "essai"
    10. MsgBox "Message: " & M
    11.  
    12. C = ""
    13. For i = 1 To Len(M)
    14. C = C & Chr(Asc(Mid(K, i, 1)) Xor Asc(Mid(M, i, 1)))
    15. Next
    16. MsgBox "Chiffré: " & C
    17.  
    18. D = ""
    19. For i = 1 To Len(C)
    20. D = D & Chr(Asc(Mid(K, i, 1)) Xor Asc(Mid(C, i, 1)))
    21. Next
    22.  
    23. MsgBox "Déchiffré: " & D
    24. End Function


    Facile, non ?
    Alors voici les deux fonctions utiles :
    1. Function Chiffrement(Message As String, Clef As String) As String
    2. Dim i As Integer
    3. Dim C As String
    4.  
    5. For i = 1 To Len(Message)
    6. C = C & Chr(Asc(Mid(Clef, i Mod (Len(Message) + 1), 1)) Xor Asc(Mid(Message, i, 1)))
    7. Next
    8.  
    9. Chiffrement = C
    10. End Function
    11.  
    12. Function Dechiffrement(MsgCode As String, Clef As String) As String
    13. Dechiffrement = Chiffrement(MsgCode, Clef)
    14. End Function


    J'ai remplacé i par i Mod (Len(Message) + 1). Devine pourquoi.

    Pour ce qui est des fonctions de hachage, je t'invite à te renseigner sur md5 (facile) ou sur sha-1 (difficile).

    Merci pour toutes les infos que tu viens de me fournir, je suis en train de mettre en forme dans mon vbs pour la partie hachage je ne suis pas encore dessus mais si je dois l'utilise j'utiliserai le sha-1 qui est plus sécurisé que le md5
    Pour être tranquille je vais convertir mon vbs en exe
    J'ai trouvé une appli qui le fait et qui est freeware
    xNeat Application Builder
    http://www.xneat.com/

    Je suis désole mais dans la boite, il fournisse pas le pastis, donc obliger de travailler même à 11h30 le vendredi
    Expert Programmation

    Ah, cool, tu as donc commencé avec du hachage, c'est que tu avais déjà compris le principe et l'intérêt de stocker des mots de passe hachés. Cool. Bah, mon explication restera pour les autres ;) 

    Quant à md5, ben c'est déjà pas mal. Sha-1 est bien mieux, c'est vrai. Mais dans la mesure où tu fais des ptits programmes en VBS (excuse le ton condescendant, j'ai bien compris que tu n'as pas tout choisi) je m'étonne que tu ais besoin d'une résistance au décryptage digne de Sha-1. Mais pourquoi pas.

    Le principe du cryptage, c'est que le moteur peut être vu. Le principe du SHA-1 est connu de tous, mais il n'existe pas de fonction inverse. Bien malin celui qui lira tes mots de passe cryptés. Donc pas d'inquiétude, et pas la peine de cacher ton code dans un exe !
    Lassé par la pub ? Créez un compte