Avatar billede Slettet bruger
12. juni 2010 - 01:46 Der er 13 kommentarer og
1 løsning

Hej eksperter... Jeg har brugernavn og passwords krypteret med sha1, men kan jeg ikke få brugernavn decrypteret, så jeg kan vise det på siden...

Hej eksperter

Jeg har brugernavn og passwords krypteret med sha1, og jeg arbejder med php, men kan jeg ikke få brugernavn decrypteret, så jeg kan udskrive det rigtige brugernavn på siden... Fordi hvis jeg udskriver brugernavn på siden, så kommer krypteringen jo bare frem istedet... grunden til at jeg har krypteret brugernavn også, er sikkerheden...

Håber i har et svar på dette... Det kunne være lækkert...
Avatar billede ksoren Nybegynder
12. juni 2010 - 01:51 #1
sha er en envejs hash-funktion, så det kan du ikke.
Avatar billede Slettet bruger
12. juni 2010 - 01:55 #2
hmm, hvad med md5, måske eller crypt()
Avatar billede ksoren Nybegynder
12. juni 2010 - 01:57 #3
Nej. Så længe det er en hash funktion, så kan du ikke vende tilbage til udgangspunktet.
Avatar billede ksoren Nybegynder
12. juni 2010 - 02:01 #4
Men hvis sha1(brugernavn) = hash fra databasen, så har du jo for så vidt også brugernavnet (indtastet af brugeren). Så er der bare den teoretiske mulighed for sammenfald mellem hash-værdier.
Avatar billede Slettet bruger
12. juni 2010 - 02:02 #5
hmm, hvad kan man så gøre...

jeg vil jo gerne have at kundenr bliver ligesom en md5/sha1..

dashboard.php?$kundenr

så enhver ikke kan genkende den...

så den ligner fx:

dashboard.php?181a3cafb7bbda400f9a4k8bc8ll275e9510d661
Avatar billede majbom Novice
12. juni 2010 - 12:34 #6
normalt er det bare koden man hasher og det samme gør du med den kode der bliver indtastet ved login og så sammenligner du de 2 hash-værdier
Avatar billede zynzz Praktikant
12. juni 2010 - 14:15 #7
Der findes masser af klasser som kan dette....

http://www.phpclasses.org/browse/class/20.html
Avatar billede leif Seniormester
12. juni 2010 - 15:23 #8
Det jeg har gjort i dette tilfælde er at i adresselinien (Hvis jeg ønsker en unik værdi for brugeren) er at have brugernavnet i databasen rent og så have et felt som indeholder en unik hash værdi.
Avatar billede repox Seniormester
12. juni 2010 - 16:37 #9
Normalt gør jeg det at jeg hasher den værdi jeg skal bruge, når jeg skal bruge den.

Så du kan faktisk godt have en ukrypteret værdi i databasen, men stadig søge på den.

Eksempel:
<?php

  $bruger = mysql_real_escape_string($_GET["sha1_krypteret_brugernavn"]);
  $sql = "SELECT * FROM brugertabel WHERE SHA1(plain_text_brugernavn) = '".$bruger."' LIMIT 1";

?>


Og det virker fremragende...

Og jeg lader i princippet også MySQL gøre det beskidte arbejde for mig, når jeg henter dataene:

<?php

  $sql = "SELECT *, SHA1(plain_text_brugernavn) as krypteret_brugernavn FROM brugertabel WHERE userId = ".$_SESSION["userId"]." LIMIT 1";

?>


Bare en idé...
Avatar billede Slettet bruger
08. august 2010 - 04:04 #10
lukker
Avatar billede repox Seniormester
08. august 2010 - 11:17 #11
Synes du ikke efterhånden du burde anses for at være temmelig utaknemmelig? Du reagerer ikke engang på løsningsforslag, men lukker bare dine spørgsmål og beholder pointene selv - det synes jeg er flabet.
Avatar billede zynzz Praktikant
08. august 2010 - 19:46 #12
Jeg må give repox ret, du burde da evt. skrive om du har løst det på egen hånd og så skrive hvad du kom frem til, og ikke lade os sidde her og intet vide, du skriver bare "lukker".

Jeg må sige det virker lidt flabet...
Avatar billede majbom Novice
09. august 2010 - 00:09 #13
kunne være man skulle opdatere sin blacklist...
Avatar billede zynzz Praktikant
10. august 2010 - 17:29 #14
hehe, jeg har ingen.. :D
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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