Pagina 1 di 4 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 32
  1. #1

    criptare una stringa in VB.net per impedirne la scoperta tramite decompilazione

    Come criptare una stringa in VB.net per impedire che venga scoperta attraverso la decompilazione?

    Ho username e password da salvare all'interno di un programma scritto in VB.net.
    Ho criptato la stringa contente questi dati per impedire che al momento della decompilazione questa variabile venisse fuori in chiaro. Ma questo non risolve niente.

    Ho utilizzato il metodo TripleDES, salvato la variabile criptata e al momento opportuno questa viene decriptata utilizzando la key. Ma la key utilizzata per decriptare, con la decompilazione salta fuori in chiaro e poi attraverso questa chiunque può scoprire la variabile con username e password.

    Come devo fare per impedire che qualcuno scopra il contenuto di questa variabile?
    Migliaia di programmi come Skype o applicazioni dei Casinò salvano user e password degli utenti sul PC. Quale sistema adottano perchè lo possa utilizzare anch'io?

    La user e password in questo caso non sono inserite dall'utente, ma deve essere già salvata nel programma. Quindi non posso fare il confronto con informazioni che l'utente deve inserire perchè devono essere già salvate nel programma e non devono essere visualizzabili da chi decompila.

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Con .NET 4 è prevista la classe

    SecureString
    http://msdn.microsoft.com/it-it/libr...urestring.aspx

    Ma la password all'interno del programma viene inviata in rete?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    si, verrà inviata.
    pensavo di utilizzare una connessione criptata https per risolvere il problema sotto questo punto di vista.

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Sì, devi fare così altrimenti è tutto inutile.

    Se dai un'occhiata alla documentazione, ci dovrebbe essere un esempio ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    ho utilizzato secure string ma questo non risolve il problema.
    la stringa è comunque visibile quando vado a decompilare il programma

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Cosa hai scritto?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  7. #7
    codice:
    Public Class FormX
    
      Dim accsec As String
    
        Public Sub cripto()
            ' Define the string value to be assigned to the secure string.
            Dim initString As String = "server=localhost; user id=root; password='' ; database=impresaline"
            ' Instantiate the secure string.
            Dim testString As SecureString = New SecureString()
            ' Use the AppendChar method to add each char value to the secure string.
            For Each ch As Char In initString
                testString.AppendChar(ch)
            Next
            ' Display secure string length.
            '    Console.WriteLine("The length of the string is {0} characters.", _ '  testString.Length)
            accsec = testString.ToString
        End Sub
    
        Public Sub connessione()
            cripto()
            MsgBox(accsec)
            mysqlconn.ConnectionString = accsec
        End Sub
    La funzione cripto continua a mostrare in chiaro la stringa "server=localhost; user id=root; password='' ; database=impresaline" quando viene decompilata

  8. #8
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Non usare stringhe normali.

    In C# pensavo a qualcosa del genere ...

    codice:
    using System;
    using System.Security;
    using System.Runtime.InteropServices;
    
    public class Example
    {
        static private SecureString accsec;
            
        static private void cripto()
        {
            accsec = new SecureString();
            accsec.AppendChar('P');
            accsec.AppendChar('A');
            accsec.AppendChar('S');
            accsec.AppendChar('S');
            accsec.AppendChar('W');
            accsec.AppendChar('O');
            accsec.AppendChar('R');
            accsec.AppendChar('D');
        }
    
        public static void Main()
        {
            cripto();
    
            IntPtr bstr = Marshal.SecureStringToBSTR(accsec);
    
            try
            {
                Console.WriteLine(Marshal.PtrToStringBSTR(bstr));
            }
            finally
            {
                Marshal.FreeBSTR(bstr);
            }
        }
    }
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  9. #9
    ma io sto scrivendo in vb.net ..
    e comunque non vedo come applicare i tuoi consigli.

  10. #10
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Pensavo fosse scontata la traduzione di quelle righe ... comunque

    codice:
        Dim accsec As SecureString
    
        Sub cripto(ss As SecureString)
            ss.AppendChar("P")
            ss.AppendChar("A")
            ss.AppendChar("S")
            ss.AppendChar("S")
            ss.AppendChar("W")
            ss.AppendChar("O")
            ss.AppendChar("R")
            ss.AppendChar("D")
        End Sub
    
        Function decripto(ss As SecureString) As String
            Dim bstr As IntPtr = Marshal.SecureStringToBSTR(accsec)
            Dim s As String
            Try
                s = Marshal.PtrToStringBSTR(bstr)
            Finally
                Marshal.FreeBSTR(bstr)
            End Try
    
            Return s
        End Function
    
        Sub Main()
            accsec = New SecureString()
    
            cripto(accsec)
    
            Console.WriteLine(decripto(accsec))
        End Sub
    quello che ti volevo far controllare era se riuscivi a decompilare il codice identificando la stringa PASSWORD al suo interno
    No MP tecnici (non rispondo nemmeno!), usa il forum.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.