n° 219
Novembre 2017
Dicembre 14, 2017, 12:50:12 *
Benvenuto! Accedi o registrati.
Hai dimenticato l'e-mail di attivazione?

Accesso con nome utente, password e durata della sessione
Notizia:
 
   Indice   Linux Windows Techassistance Gameassistance videogame hardware Aiuto Ricerca Agenda Downloads Accedi Registrati  


* Messaggi recenti
Messaggi recenti
Pagine: [1]   Vai giù
  Stampa  
Autore Discussione: Sql Server in Visual Studio  (Letto 3800 volte)
0 utenti e 1 Utente non registrato stanno visualizzando questa discussione.
Rober23
Newbie
*

Karma: +0/-1
Scollegato Scollegato

Messaggi: 40


Mostra profilo
« inserita:: Dicembre 21, 2012, 02:13:43 »

Ciao a tutti, sto creando una tabella utenti a cui si appoggerà la pagina di login di un sito. mi trovo in difficoltà per quanto riguarda il campo password della tabella: come imposto il tipo di dato?come gli dico che è una password?
Registrato
ctraversa
Jr. Member
**

Karma: +14/-9
Scollegato Scollegato

Messaggi: 167


Mostra profilo
« Risposta #1 inserita:: Dicembre 22, 2012, 10:47:16 »

Rober23 non esiste un tipo di dato "password" per i database. Che io sappia ad oggi nessun database ha un tipo di dato "password". Il motivo è soprattutto concettuale. Se ci pensi un attimo comprendi anche il perchè. Per proteggere le password da occhi indiscreti quello che si fa è utilizzare un normalissimo varchar della lunghezza che ritieni più opportuna e poi memorizzare la password usando un algoritmo di cifratura. Ovviamente la stringa criptata deve poi essere "decriptata" quando fai il login per vedere se corrisponde a quella inserita nel form. In questo modo la gestione della password e relativa cifratura e decifratura viene demandata alla logica applicativa.
Piuttosto ogni database che si rispetti implementa degli insiemi di funziono per la cifratura. Quindi utilizzando le stesse funzioni del DB puoi gestire agevolamente la cifratura delle password sullo stesso.
Altro approccio è far criptare la Colonna di dati intera come da link seguente
http://technet.microsoft.com/en-us/library/ms179331.aspx
Registrato
DEV-01
Full Member
***

Karma: +11/-23
Scollegato Scollegato

Messaggi: 472

Me.Shift ^(n)


Mostra profilo E-mail
« Risposta #2 inserita:: Dicembre 22, 2012, 12:51:54 »

In genere per memorizzare le password si utilizza (almeno come ultimo algoritmo) l' MD5 il cui risultato è irreversibile.
Non occorre decifrare la password ma sottoporre il valore immesso allo stesso algoritmo di generazione e poi eseguire una comparazione fra il risultato ottenuto e il valore originario prelevato dal campo contenente le password della tua tabella.
Registrato

01000100 01100101 01110110 00101101 00110000 00110001
ctraversa
Jr. Member
**

Karma: +14/-9
Scollegato Scollegato

Messaggi: 167


Mostra profilo
« Risposta #3 inserita:: Dicembre 23, 2012, 06:08:17 »

DEV-01 ha ragione. L'MD5 è il più usato perchè rendendo irreversibile il risultato ne rende di conseguenza irrecuperabile le password. Tuttavia questo è vero solo in teoria perchè nella pratica si recuperano con tecniche come quella della "rainbow tables" o delle semplici brute force. Quindi se proprio vuoi usare l'MD5 sarebbe meglio usare dei salt. Ottimo è il PBKDF2 che utilizza dei salt pseudo casuali.
Ad ogni modo dipende sempre dalle necessità. Se devi sviluppare applicazioni dove deve essere possibile recuperare e visualizzare le password senza costringere a crearle ex-novo a chi le dimentica, tali algoritmi non sono applicabili. Dovrai sceglierne un o che ne permetta la decodifica.
Registrato
DEV-01
Full Member
***

Karma: +11/-23
Scollegato Scollegato

Messaggi: 472

Me.Shift ^(n)


Mostra profilo E-mail
« Risposta #4 inserita:: Dicembre 23, 2012, 10:44:14 »

Certo. Tuttavia se la situazione lo richiede (perché come giustamente sottolineato da ctraversa bisogna sempre vedere se le caratteristiche intrinseche dell'algoritmo soddisfino il caso particolare) è sempre possibile implementare un'algoritmo di cifratura proprietario. Un buon punto di partenza può essere lo studio delle s-box, slittamenti e sostituzioni di bit, operazioni XOR, inversioni di blocchi e mappature alternative dei caratteri alfanumerici...
insomma c'è da sbizzarrirsi anche perché le basi teoriche per trarre spunto sono per lo più standard e/o di pubblico dominio.

Ti posto comunque alcuni link relativi il pbkdf2 (soluzione proposta da ct):

http://en.wikipedia.org/wiki/PBKDF2
http://msdn.microsoft.com/en-us/library/system.security.cryptography.rfc2898derivebytes.aspx
http://help.csharptest.net/CSharpTest.Net.Library~CSharpTest.Net.Crypto.PBKDF2.html

che tra l'altro ha stimolato la mia curiosità fornendomi un valido argomento di studio per i prossimi giorni:

GRAZIE!!! Ghigno
Registrato

01000100 01100101 01110110 00101101 00110000 00110001
Pagine: [1]   Vai su
  Stampa  
 
Vai a:  

Copyright © 2017 Edizioni Master SpA. p.iva : 02105820787

Tutti i diritti di proprietà letteraria e artistica riservati. - Privacy



powered by Simple Machines