Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2002
    Messaggi
    446

    [C#] Criptare application.settings

    Salve a tutti,
    sto muovendo i primi passi nel C#
    Ho effettuato una piccola applicazione che utilizza un database esterno.
    Per impedire agli smanettoni di modificare la stringa di connessione, avrei
    pensato alla possibilità di poter criptare il file app.config in toto o solo in alcune sezioni.

    Ho cercato su internet, e sicuramente sbaglio metodo.
    Di seguito la parte relativa al recupero dei dati salvati all'interno del file di configurazione :

    codice:
    Properties.Settings dati = new MiaApp.Properties.Settings();
    TextBox1.Text = dati.db_destinazione;
    dove db_destinazione è appunto la stringa di connessione del db.
    C'e' qualcuno che puo' darmi una dritta ( link con esempi semplici )?
    Grazie mille
    Veloce,Affidabile,Economico : Scegline 2

    Se la tua ragazza non te la da, tu non prendertela

  2. #2
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Guarda il namespace System.Security.Cryptography

    http://msdn.microsoft.com/it-it/libr...ptography.aspx

    Ovviamente la strnga di connessione dovrebbe essere salvata già cifrata poi, dopo averla riletta, andrà decifrata.


  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2002
    Messaggi
    446
    Ciao Gibra,
    grazie per avermi risposto.
    Allora...diciamo che la classe System.Security.Cryptography l'ho vista, ma da vari esempi e vari tutorial in giro, non c'ho capito granche'.

    So cosa dovrei fare... un qualcosa del tipo :

    Prelevare dal file di configurazione app.setting il valore cifrato, passarlo ad una funzione di tale classe e ottenere cosi il valore "decifrato".

    Poi da qualche parte all'interno del programma, devo invece creare un form con la possibilità di inserire i dati di configurazione e quando si preme "Salva configurazione", andar a dare alle funzioni di criptazione della classe Cryptography i vari valori seguiti da una chiave ( mia ).

    Quindi, mentre a livello logico ho capito come si dovrebbe svolgere il tutto, mi manca un esempio pratico su cui applicarlo.

    Ripeto....da neofita di C# proverei un :

    codice:
    using System.Security.Cryptography;
    e all'interno del mio form1_load richiamare le sue classi, ma quale è utile allo scopo? Puoi aiutarmi in tal senso?
    Grazie
    Ciao
    Veloce,Affidabile,Economico : Scegline 2

    Se la tua ragazza non te la da, tu non prendertela

  4. #4
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Non è così banale come la esponi tu.

    Prima di tutto: Non bastano 4 righe di codice, che non hanno alcun significato se non si studiano prima le classi del namespace.
    Questo perchè (tanto per fare un'esempio) vi sono differenti algoritmi di crittografia disponibili (AES, DES, ...) che vanno scelti anche in base al sistema operativo, perchè non tutti sono compatibili con tutte le versioni di Windows.

    Ora, se la tua (come credo) è un'applicazione database in multiutenza, allora è necessario prima fare i conti con il parco macchine su cui andrà installata e, al contrario di quanto sbandierato dai mass-media a detta dei quali "Vista avrebbe rimpiazzato XP entro un anno" (certo non so con quale coraggio e su quali basi sparano 'ste cavolate) tra i miei clienti vi sono aziende che usano ancora Windows 2000 con 256MB di Ram (e nemmeno tutte aggiornate al SP4).

    Comunque se poi vuoi esempi di codice già pronto, sul web ne trovi a pacchi (CodeProject, C# Corner, ...). Basta 'googlare'

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2002
    Messaggi
    446
    Beh...e' un'applicazione Windows Form che girera' in multiutenza.
    Tale programma sarà installato per lo piu' su Windows Xp, ma di sicuro ci sarà qualcuno con Windows 7...
    Mi sa che dovro' studiare tutto il namespace sulla crittografia allora...

    Pensavo che il framework del .net mi veniva in aiuto astraendo il sistema di criptazione.
    In fondo non dovevo far altro che
    codice:
    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
        <configSections>
            <sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
                <section name="App01.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
            </sectionGroup>
        </configSections>
        <applicationSettings>
            <App01.Properties.Settings>
                <setting name="chiave" serializeAs="String">
                    <value>VALORECRIPTATO</value>
                </setting>
                <setting name="chiave2" serializeAs="String">
                    <value>VALORECRIPTATO2</value>
                </setting>
            </App01.Properties.Settings>
        </applicationSettings>
    </configuration>
    Leggere i valori criptati delle chiavi e decriptarli in memoria. Poi in un'altro form, ci sarà la possibilità di leggere i dati criptati e decrittarli in un textbox per poi crittarli alla pressione di un tasto.

    Nulla di estremamente complesso (credo), o forse ho deliri di onnipotenza?
    Veloce,Affidabile,Economico : Scegline 2

    Se la tua ragazza non te la da, tu non prendertela

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.