Avatar billede mborik Nybegynder
15. oktober 2004 - 11:27 Der er 8 kommentarer

case sensitiv evaluering af password

Jeg har lavet en passwordgenerator, som ved kald laver et random password.  Eks: qr6BA. 

Hvordan gennemtvinger jeg, at evalueringen er case sensitiv?  I databasen har jeg et tekstfelt med qr6BA.  I koden undersøger jeg om det, som brugeren har tastet, er det samme som det der står i databasen

If(ms_password_db == ms_password){
  hvis sandt, giv adgang
}
else {
'farveller'
}

Simpelt – måske for simpelt?  Om jeg taster qr6BA, qr6ba eller QR6BA gør nemlig ingen forskel.
Avatar billede the_party_dog Nybegynder
15. oktober 2004 - 11:30 #1
Det er SQL som er lige glad, den er ikke case sensitive:

http://vyaskn.tripod.com/case_sensitive_search_in_sql_server.htm
Avatar billede bennytordrup Nybegynder
15. oktober 2004 - 11:30 #2
if (string.Compare(ms_password_db, ms_password, false)== 0)
  GivAdgang();
else
  Farveller();
Avatar billede bennytordrup Nybegynder
15. oktober 2004 - 11:30 #3
Hov, det skulle være svar.
Avatar billede the_party_dog Nybegynder
15. oktober 2004 - 11:32 #4
når ja... eller:

if(ms:password_db.Equals(ms_password) == true)
{
giv lov
}
else
{
smid ham ud
}
Avatar billede the_party_dog Nybegynder
15. oktober 2004 - 11:33 #5
eller tjekker equals ikke på forskellen mellem store og små bogstaver? Men benny's burde ihvertfald virke....
Avatar billede arne_v Ekspert
15. oktober 2004 - 19:52 #6
Du har en fejl et andet sted i din kode !

== *er* case sensitiv !!

==, Equals og Compare==0 giver præcis samme resultat.
Avatar billede arne_v Ekspert
15. oktober 2004 - 19:52 #7
using System;

class TestClass
{
    public static void test(string s1, string s2) {
        Console.WriteLine("\"" + s1 + "\"==\"" + s2 + "\"                : " + (s1==s2));
        Console.WriteLine("\"" + s1 + "\".Equals(\"" + s2 + "\")        : " + s1.Equals(s2));
        Console.WriteLine("String.Compare(\"" + s1 + "\",\"" + s2 + "\") : " + String.Compare(s1,s2));
    }
    public static void Main(string[] args)
    {
        test("A","A");
        test("a","A");
        test("A","a");
        test("a","a");
    }
}

giver:

"A"=="A"                : True
"A".Equals("A")        : True
String.Compare("A","A") : 0
"a"=="A"                : False
"a".Equals("A")        : False
String.Compare("a","A") : -1
"A"=="a"                : False
"A".Equals("a")        : False
String.Compare("A","a") : 1
"a"=="a"                : True
"a".Equals("a")        : True
String.Compare("a","a") : 0
Avatar billede mborik Nybegynder
16. oktober 2004 - 18:24 #8
Tak for hjælpen arne_v
- jeg vil se om ikke et eller andet af dette her kan afhjælpe problemet.  Men p.t. er jeg lidt presset med at få meget andet færdigt.  Problemet er ikke af den største betydning.  Mange brugere vil nok også 'besværes' af at skulle huske at de skælnes mellem store og små bogstaver.

Mvh Mads
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester