Partage
  • Partager sur Facebook
  • Partager sur Twitter

Décrypter un code crypter

vb.net winform

    4 novembre 2011 à 1:35:53

    Bonjour à tous, voilà je fait un petit logiciel ou je fait une inscription dessus, et les gens ce plaignais que le mot de passe enregistré sur leurs ordinateur n'étais pas crypter.

    Alors là j'ai commencer à le refaire en cryptant le mot de passe, sauf que quand j'ai trouvé là class sur internet il y avais le cryptage suivis du décryptage.

    Et sauf que là je doit les utilisé à part j'ai essayer de coupé là class, mais impossible de décrypter un "string" je suis débutant donc je n'arrive pas à comprendre comment faire pour mettre le "string" en "byte" pour pouvoir le décrypter.

    Car là en faite il crypte le code déjà crypter pour ensuite le décrypter (en claire ça sert à rien), je penser à faire deux décryptage après le cryptage, mais je n'arrive pas !

    Class Decryptor:

    Imports System
    Imports System.Security.Cryptography
    Imports System.Text
    
    Class Decryptor
        Private Shared quote As String = Form1.TextBox3.Text
    
        Public Shared Sub Main()
            Dim aesCSP As New AesCryptoServiceProvider()
    
            aesCSP.GenerateKey()
            aesCSP.GenerateIV()
    
            Dim encQuote() As Byte = EncryptString(aesCSP, quote)
            Form1.ListBox3.Items.Add(DecryptBytes(aesCSP, encQuote))
        End Sub
    
        Public Shared Function EncryptString(ByVal symAlg As SymmetricAlgorithm, ByVal inString As String) As Byte()
            Dim inBlock() As Byte = UnicodeEncoding.Unicode.GetBytes(inString)
            Dim xfrm As ICryptoTransform = symAlg.CreateEncryptor()
            Dim outBlock() As Byte = xfrm.TransformFinalBlock(inBlock, 0, inBlock.Length)
    
            Return outBlock
        End Function
    
        Public Shared Function DecryptBytes(ByVal symAlg As SymmetricAlgorithm, ByVal inBytes() As Byte) As String
            Dim xfrm As ICryptoTransform = symAlg.CreateDecryptor()
            Dim outBlock() As Byte = xfrm.TransformFinalBlock(inBytes, 0, inBytes.Length)
    
            Return UnicodeEncoding.Unicode.GetString(outBlock)
        End Function
    
    End Class
    


    Class Encryptor

    Imports System
    Imports System.Security.Cryptography
    Imports System.Text
    
    Class Encryptor
        Private Shared quote As String = Form1.TextBox3.Text
    
        Public Shared Sub Main()
            Dim aesCSP As New AesCryptoServiceProvider()
    
            aesCSP.GenerateKey()
            aesCSP.GenerateIV()
            Dim encQuote() As Byte = EncryptString(aesCSP, quote)
            Form1.ListBox2.Items.Add(Convert.ToBase64String(encQuote))
        End Sub
    
        Public Shared Function EncryptString(ByVal symAlg As SymmetricAlgorithm, ByVal inString As String) As Byte()
            Dim inBlock() As Byte = UnicodeEncoding.Unicode.GetBytes(inString)
            Dim xfrm As ICryptoTransform = symAlg.CreateEncryptor()
            Dim outBlock() As Byte = xfrm.TransformFinalBlock(inBlock, 0, inBlock.Length)
    
            Return outBlock
        End Function
    End Class
    


    Merci d'avance 1h que je cherche et que je n'arrive pas à trouvé comment décrypter un string ...

    Edit:

    test = 78TDZ59WL5nZdfCmXYE1AA==

    Si je fait ça:


    Imports System
    Imports System.Security.Cryptography
    Imports System.Text
    
    Class Decryptor
        Private Shared quote As String = "test"
    
        Public Shared Sub Main()
            Dim aesCSP As New AesCryptoServiceProvider()
    
            aesCSP.GenerateKey()
            aesCSP.GenerateIV()
    
            Dim encQuote() As Byte = EncryptString(aesCSP, quote)
            Form1.ListBox3.Items.Add(DecryptBytes(aesCSP, encQuote))
        End Sub
    
        Public Shared Function EncryptString(ByVal symAlg As SymmetricAlgorithm, ByVal inString As String) As Byte()
            Dim inBlock() As Byte = UnicodeEncoding.Unicode.GetBytes(inString)
            Dim xfrm As ICryptoTransform = symAlg.CreateEncryptor()
            Dim outBlock() As Byte = xfrm.TransformFinalBlock(inBlock, 0, inBlock.Length)
    
            Return outBlock
        End Function
    
        Public Shared Function DecryptBytes(ByVal symAlg As SymmetricAlgorithm, ByVal inBytes() As Byte) As String
            Dim xfrm As ICryptoTransform = symAlg.CreateDecryptor()
            Dim outBlock() As Byte = xfrm.TransformFinalBlock(inBytes, 0, inBytes.Length)
    
            Return UnicodeEncoding.Unicode.GetString(outBlock)
        End Function
    
    End Class
    



    Là ça traduit test en 78TDZ59WL5nZdfCmXYE1AA== puis en test, mais je veux faire ça moi:


    Imports System
    Imports System.Security.Cryptography
    Imports System.Text
    
    Class Decryptor
        Private Shared quote As String = "78TDZ59WL5nZdfCmXYE1AA=="
    
        Public Shared Sub Main()
            Dim aesCSP As New AesCryptoServiceProvider()
    
            aesCSP.GenerateKey()
            aesCSP.GenerateIV()
    
            Form1.ListBox3.Items.Add(DecryptBytes(aesCSP, quote))
        End Sub
    
        Public Shared Function DecryptBytes(ByVal symAlg As SymmetricAlgorithm, ByVal inBytes() As Byte) As String
            Dim xfrm As ICryptoTransform = symAlg.CreateDecryptor()
            Dim outBlock() As Byte = xfrm.TransformFinalBlock(inBytes, 0, inBytes.Length)
    
            Return UnicodeEncoding.Unicode.GetString(outBlock)
        End Function
    
    End Class
    



    Mais là ça marche pas car :

    Citation : visualbasic

    Impossible de convertir une valeur de type 'String' en 'Tableau à 1 dimension(s) de Byte'.

    • Partager sur Facebook
    • Partager sur Twitter

    Fréquemment à la recherche de petits projets n'hésitez pas à me contacter pour des projets : Web & Web Mobile ou logiciel (C#)

    Je suis ouvert aux autres propositions, selon ce qu'est le projet et le temps qu'il demande..

      4 novembre 2011 à 12:32:38

      C'est logique:

      Form1.ListBox3.Items.Add(DecryptBytes(aesCSP, quote))
      


      quote est déclaré comme un String et tu l'envoi en paramètre à ta fonction DecryptBytes.

      Voici les paramètres que ta fonction doit recevoir:

      Public Shared Function DecryptBytes(ByVal symAlg As SymmetricAlgorithm, ByVal inBytes() As Byte)
      


      Ne trouves-tu pas que ça cloche un peu?
      • Partager sur Facebook
      • Partager sur Twitter
        4 novembre 2011 à 16:56:40

        Ouai mais j'ai rien compris à ce code, mais c'est pas grave, j'ai fait plus simple j'ai fait que ça mais le string en acsii beaucoup plus simple.

        Sa le mais en acsii, et le remais en acsii, comme ça ça deviens moins logique pour les gens car si y font plusieurs comptes avec a,b,c,d,e etc y ont tous l'alphabet pour le décrypter.

        là ab sera différent que a + b vue que ça crypte 2 fois en acsii :p

        Donc voilà très simple et rapide juste en 2 fonction de 5 lignes chacun.
        • Partager sur Facebook
        • Partager sur Twitter

        Fréquemment à la recherche de petits projets n'hésitez pas à me contacter pour des projets : Web & Web Mobile ou logiciel (C#)

        Je suis ouvert aux autres propositions, selon ce qu'est le projet et le temps qu'il demande..

          4 novembre 2011 à 18:47:56

          Tu as lu un peu ce que j'ai dis ou pas en fait?
          Car je te dis que c'est normal qu'il fasse :
          Impossible de convertir une valeur de type 'String' en 'Tableau à 1 dimension(s) de Byte'.

          Ta fonction de décryptage te demande un tableau de Byte en entrée et ce que tu lui envois c'est quote qui est un String.
          C'est logique qu'il râle quand même non?
          • Partager sur Facebook
          • Partager sur Twitter
            5 novembre 2011 à 18:10:47

            Bon sans ton lire ton problème, je précise que tu n'as pas besoin du décryptage pour l'histoire des mots de passe:
            1- l'utilisateur crée un mot de passe (mdp), ton programme le crypte (mdp_cr) puis l'enregistre
            2- quand l'utilisateur veut se connecter, il indique son mot de passe(mdp1) et ton programme le crypte(mdp1_cr) et compare le résultat crypté avec le mot de passe crypté qui a été enregistré (mdp1_cr == mdp_cr) ...
            • Partager sur Facebook
            • Partager sur Twitter
            ** La doc, c'est comme le PQ: ça sert à se démerder tout seul **

            Décrypter un code crypter

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown