|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Sep 2004
Messaggi: 3967
|
[Hibernate/Nhibernate/C#]problemi con md5
Ciao a tutti
Ho un form di login dove la password che viene inserita deve ovviamente essere confrontata con la password inserita sul database con l'algoritmo md5. la funzione che fa questo l'ho scritta così: Codice:
private void TestAuth()
{
using(ISession session = DBFactory.OpenSession())
{
using(ITransaction tx = session.BeginTransaction())
{
try
{
Operatore operatore = (Operatore)session.CreateQuery("from Operatore o where o.UserName = :userName AND o.Password = ").UniqueResult();
//blablacode...
tx.Commit();
}
//etc..
In rete non sono riuscito a trovare qualcosa di comprensibile per me. Grazie a tutti RaouL.
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek
|
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3692
|
Ti consiglio di trattare i digest e gli hash (MD5, SHA1, MD6, etc.) come stringhe (uppercase per convenzione) nel database, e non come binari.
__________________
Se pensi che il tuo codice sia troppo complesso da capire senza commenti, e' segno che molto probabilmente il tuo codice e' semplicemente mal scritto. E se pensi di avere bisogno di un nuovo commento, significa che ti manca almeno un test. |
|
|
|
|
|
#3 | |
|
Senior Member
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
|
Quote:
[scusate l'intrusione, e il relativo OT] @EDIT: Grazie della risposta gugoXX.
__________________
As long as you are basically literate in programming, you should be able to express any logical relationship you understand. If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it. (Chris Crawford) Ultima modifica di banryu79 : 20-05-2009 alle 14:34. |
|
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3692
|
Solo per semplicita' di scrittura delle query e di passaggio di parametri sia in input che in output.
Lo scotto da pagare e' qualcosa di piu' del raddoppio dello spazio per quei campi (un byte viene codificato in 2 caratteri quando stringa, e le stringhe hanno tipicamente un po' do overhead costante in quasi tutti i database) Inoltre ci sono casi di motori in cui non e' possibile dichiarare indici sui campi binari, che sarebbero invece utili in molte query che coinvolgono le tabelle dove gli hash sono stati memorizzati, quindi ricerche tipo WHERE hash =.... potrebbero risultare penalizzate.
__________________
Se pensi che il tuo codice sia troppo complesso da capire senza commenti, e' segno che molto probabilmente il tuo codice e' semplicemente mal scritto. E se pensi di avere bisogno di un nuovo commento, significa che ti manca almeno un test. |
|
|
|
|
|
#5 | |
|
Senior Member
Iscritto dal: Sep 2004
Messaggi: 3967
|
Quote:
Credo che inconsciamente abbia fatto come da te suggerito dato che la tabella sul db l'ho fatta così: Codice:
table Operatori: id_operatore int (pk) userName varchar(20) password text ruolo varchar(5) Codice:
INSERT INTO Operatori(userName, password, ruolo)
VALUES('raoul', md5('raoulsecret'), 'ULN01');
Può andare bene lo stesso? Grazie RaouL.
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek
|
|
|
|
|
|
|
#6 | |
|
Senior Member
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3692
|
Quote:
Possono esserci problemi di architettura in presenza di comunicazioni verso DB non blindate, per le quali occorrerebbe studiare qualcosa di diverso, ma funzionalmente va comunque bene e se non stai facendo qualcosa di sensibile va bene.
__________________
Se pensi che il tuo codice sia troppo complesso da capire senza commenti, e' segno che molto probabilmente il tuo codice e' semplicemente mal scritto. E se pensi di avere bisogno di un nuovo commento, significa che ti manca almeno un test. |
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 03:10.




















