Avatar billede ihtezaz Praktikant
31. januar 2005 - 18:46 Der er 19 kommentarer og
2 løsninger

Kryptere pasword og læg i Sql DB

Hej

Jeg har noget log-ind information, Brugernavn og password, som jeg gemmer i min Sql Server DB. Nu ønsker jeg at kryptere password inden jeg lægger det i DB'en og dekryptere når jeg igen henter det fra Db'en. Hvordan kan det gøres i asp.net.

jeg har bikset lidt med : System.Security.Cryptography.SymmetricAlgorithm
men har ikke rigtig fået det til at virke. Gerne eksempler.

På forhånd tak.
Avatar billede arne_v Ekspert
31. januar 2005 - 18:55 #1
kryptere:

        Encoding utf = new UTF8Encoding();
        TripleDES des3 = new TripleDESCryptoServiceProvider();
        byte[] key = utf.GetBytes("hemmeligabcdefgh12345678");
        byte[] iv = { 1, 2, 3, 4, 5, 6, 7, 8 };
        ICryptoTransform encrypt = des3.CreateEncryptor(key, iv);
        byte[] cipher = encrypt.TransformFinalBlock(utf.GetBytes(plain), 0, utf.GetByteCount(plain));


dekryptere:

        Encoding utf = new UTF8Encoding();
        TripleDES des3 = new TripleDESCryptoServiceProvider();
        byte[] key = utf.GetBytes("hemmeligabcdefgh12345678");
        byte[] iv = { 1, 2, 3, 4, 5, 6, 7, 8 };
        ICryptoTransform decrypt = des3.CreateDecryptor(key, iv);
        String plain = utf.GetString(decrypt.TransformFinalBlock(cipher, 0, cipher.Length));
Avatar billede driis Nybegynder
31. januar 2005 - 18:56 #2
Jeg ville nok hashe passwordet fremfor at kryptere det. På den måde behøver du ikke at bekymre dig om at gemme krypteringsnøglen.
Avatar billede arne_v Ekspert
31. januar 2005 - 18:56 #3
Du kan enten gemme byte arrayet i et passende binært felt.

Eller du kan Base64 encode det og gemme det i et text felt.
Avatar billede arne_v Ekspert
31. januar 2005 - 18:57 #4
Convert.ToBase64String
Convert.FromBase64String
Avatar billede arne_v Ekspert
31. januar 2005 - 18:57 #5
Jeg har tilladt mig at antage at du bruger C#
Avatar billede arne_v Ekspert
31. januar 2005 - 18:59 #6
Driis har iøvrigt en pointe.

Hvis det ikke er et krav at passwordet kan findes igen (selvfølgelig med
passende privs), så gemmer man tit en envejs kryptering (en hash).

Når man så skal checke et password så sammenligner man bare om
hash(indtastet)==hashfradb
Avatar billede arne_v Ekspert
31. januar 2005 - 19:00 #7
Encoding utf8 = new UTF8Encoding();
        MD5 md5 = new MD5CryptoServiceProvider();
        string output = Convert.ToBase64String(md5.ComputeHash(utf8.GetBytes(input)));
Avatar billede snepnet Nybegynder
31. januar 2005 - 19:18 #8
Du kan også bruge sådan en som denne (tiltænkt til brug, hvis du ønsker at lægge dine adgangskoder i en konfigurationsfil).

string pass = FormsAuthentication.HashPasswordForStoringInConfigFile(password, algoritme);

hvor dit pass så er adgangskoden og algoritmen enten er "SHA1" eller "MD5".

(FormsAuthentication ligger i System.Web.Security)

mvh
Avatar billede ihtezaz Praktikant
01. februar 2005 - 00:16 #9
Ok, tak for en masse kvalificerede svar. Jeg kan næsten ikke vælge. Jeg vil prøve dem hen af vejen. Der er dog ikke så mange points at gøre med, men læg et svar alle sammen.
Avatar billede ihtezaz Praktikant
01. februar 2005 - 00:57 #10
Snepnet>>Hvordan sammenligner jeg det brugeren taster med hash'en.
Man tager vel hash af brugerens indtastning og sammenligner, men hvordan helt specifikt.
Avatar billede ihtezaz Praktikant
01. februar 2005 - 00:59 #11
Er det bare getHash() metoden på stregen, jeg kan benytte mig af ?
Avatar billede arne_v Ekspert
01. februar 2005 - 07:53 #12
Du skal bruge samme algoritme til det indtastede password som du brugte
til at gemme i databasen med.
Avatar billede arne_v Ekspert
01. februar 2005 - 07:53 #13
Object GetHashCode bør ikke bruges
Avatar billede ihtezaz Praktikant
01. februar 2005 - 18:49 #14
Selfølgelig..tror jeg var lidt søvnig..:)

Smid et svar.
Avatar billede arne_v Ekspert
01. februar 2005 - 18:51 #15
Mig ?
Avatar billede ihtezaz Praktikant
01. februar 2005 - 19:03 #16
også dig.
Avatar billede ihtezaz Praktikant
01. februar 2005 - 19:04 #17
Venter lige på at snepnet også lægger et svar.
Avatar billede snepnet Nybegynder
01. februar 2005 - 19:49 #18
oki - det skal du få.
(det var nu ellers bare men som en lille fodnote ;o)
mvh
Avatar billede ihtezaz Praktikant
01. februar 2005 - 20:35 #19
driis, lægger du lige et svar
Avatar billede ihtezaz Praktikant
04. februar 2005 - 12:34 #20
Ok, så må jeg tildel driis points, på et senere tidpunkt.
Avatar billede driis Nybegynder
04. februar 2005 - 13:39 #21
Jeg behøver skam ingen points for den korte kommentar ;-)
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