Avatar billede winerror Nybegynder
21. april 2004 - 14:00 Der er 24 kommentarer og
1 løsning

md5 fra crypt til normal igen

hvor dan kan man lave en crypt kode fra md5 om til den normale code ?
Avatar billede limemedia Nybegynder
21. april 2004 - 14:03 #1
md5 er en oneway hash algoritme, den kan ikke konverteres tilbage til den oprindelige værdi
Avatar billede winerror Nybegynder
21. april 2004 - 14:05 #2
okay er der noget sådan man kan gøer det ? for vil gerne crypt codere og så tage den back når folk fx skal ha ders code igen fordi de har glemt ders password ?
Avatar billede limemedia Nybegynder
21. april 2004 - 14:09 #3
Der findes utallige krypteringsalgoritmer der kan hvad du ønsker, blot ikke md5. Men vi skal vide mere om dit system, programmeringssprog mv før der er chance for at rådgive dig om alternativer
Avatar billede winerror Nybegynder
21. april 2004 - 14:10 #4
alså det enste jeg skal er at kunne crypt og decrypt...

dvs når du oprettere dig som brger hos mit system så skal din code crypt og når det så er du glemmer dit pass og skal ha det til sendt til dig igen bliver den så decrypt og sendt til dig.....
Avatar billede limemedia Nybegynder
21. april 2004 - 14:11 #5
jep, så langt er jeg med :) og dertil kan du ikke anvende md5. Hvilket programmeringssprog anvender du ?
Avatar billede winerror Nybegynder
21. april 2004 - 14:18 #6
PHP og MySQL :)
Avatar billede limemedia Nybegynder
21. april 2004 - 14:22 #7
Istedet for md5 kan du bruge "crypt" - som du jo selv ligger op til
http://dk.php.net/crypt
Avatar billede winerror Nybegynder
21. april 2004 - 14:26 #8
okay... men forstår ikke det der inde helt :) hi hi men vi lda lige læse det igennem :d
Avatar billede alvion Nybegynder
21. april 2004 - 14:43 #9
lj -> Øhm.... Fra php.net/crypt:

Note: There is no decrypt function, since crypt() uses a one-way algorithm.
Avatar billede winerror Nybegynder
21. april 2004 - 14:45 #10
dvs man ikke kan Decrypt det :S
Avatar billede alvion Nybegynder
21. april 2004 - 14:53 #11
Når det så er sagt, så er det heller ikke godt at bruge en 2-vejs kryptering til at gemme passwords. Nu gemmer du jo nok ikke på personfølsomme oplysninger - vel?...;-) Men alligevel kan man lige så godt gøre det ordentligt, for så bliver det en god vane.

Derfor: brug denne metode istedet.

- Alle passwords gemmes i databasen med md5 - altså et-vejs kryptering.

- Opret to nye felter i brugertabellen:
lost_pw_ref varchar(32)
lost_dw_date datetime

- Når brugeren har glemt sit password gør du følgende.
1) Generer en md5-kode, som du gemmer feltet "lost_password_ref" i brugerens record (den finder du ved at søge med e-mail adressen).
2) Send en e-mail til brugeren med et link á la dette:
http://www.ditwebsite.dk/lost_pw.php?ref=den-genererede-md5-kode
f.eks.
http://www.ditwebsite.dk/lost_pw.php?ref=a578d633e6e8b535971011385df781d2
3) Når brugeren klikker på linket, så køres filen "lost_pw.php". Filen slår op i brugertabellen på feltet "lost_pw_ref" og kontrollerer at datoen ikke er overskredet med 24 timer (bare en ekstra sikkerhed). Hvis brugeren findes, kan du nu præsentere ham for en formular, hvor han kan skrive et nyt password, som du derefter gemmer.

Hvis du synes at ovenstående opskrift er for voldsom i forhold til dit sikkerhedsbehov, så kan du bare helt lade være med at kryptere passwords i brugertabellen.
Avatar billede winerror Nybegynder
21. april 2004 - 14:57 #12
syndes det lyder som noget af det jeg skal buruge ;) hi hi men den måde der hade jeg enligt ikke lige helt tænkt på :)
Avatar billede limemedia Nybegynder
21. april 2004 - 14:59 #13
alvion >> arrgh :) bliver taget med bukserne nede *g*

Et alternativ, der kræver plugin
http://dk.php.net/manual/en/ref.mcrypt.php

Et alternativ uden plugin, men nemt at gætte
http://dk.php.net/manual/en/function.base64-encode.php

og så den generelle, er dine data virkeligt så hemmelige - din database er formodentligt allerede beskyttet af kodeord osv
Avatar billede alvion Nybegynder
21. april 2004 - 15:03 #14
Eksempel på, hvordan lost_pw.php kan laves (ikke testet - bær over med syntaksfejl... :-)

<?php
$ref = $_GET["ref"];
$date_limit = date("Y-m-d H:i:s") - 86400;
$pw = $_GET["pw"];

$sql = "select * from din_bruger_tabel ";
$sql .= "where lost_pw_ref = '$ref' ";
$sql .= "and lost_pw_date >= '$date_limit' ";
$res = mysql_query($sql) or die(mysql_error());
if ($row = mysql_fetch_row($res)) {
    if ($pw != "") {
        $sql = "update din-bruger-tabel ";
        $sql .= "set password-felt = '" . md5($pw) . "' ";
        $sql .= ", lost_pw_ref = '' ";
        $sql .= ", lost_pw_date = '' ";
        mysql_query($sql) or die(mysql_error());
?>
        Dit password er nu opdateret
<?php
    }
    else {
?>
        Bruger fundet, indtast nyt password:
        <form method=get>
            Password:
            <input type="text" name="pw">
            <input type="submit" value="Gem">
        </form>
<?php
    }
}
?>
Avatar billede winerror Nybegynder
26. april 2004 - 07:48 #15
okay ;) prøver lige en gang :) for så kan jeg jo sakense lave crypt password til min side :) hi hi :) smid lige et svar vis det nu fungere ikke ;)
Avatar billede alvion Nybegynder
26. april 2004 - 08:20 #16
Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure reprehenderit qui in ea voluptate velit esse quam nihil molestiae consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla pariatur?
Avatar billede limemedia Nybegynder
26. april 2004 - 08:24 #17
hmm, fik afvist en korrekt besvarelse på dit spørgsmål - nemlig "hvordan" hvor svaret er "det kan man ikke" :)
Avatar billede alvion Nybegynder
26. april 2004 - 08:54 #18
Det er sgudda rigtigt! :-) LJ skal have point'ene :)
Avatar billede winerror Nybegynder
26. april 2004 - 14:52 #19
okay så :) hi hi så må han jo også smide et svar ;) Lars-Jensen ahr du noget i mod at dele de point med alvion ? eller ?
Avatar billede limemedia Nybegynder
26. april 2004 - 14:57 #20
Var nu mere principielt :) hvordan du fordeler er op til dig, specielt når dét er "alvion "på den anden side af bordet ;)
Avatar billede alvion Nybegynder
26. april 2004 - 15:33 #21
Giv LJ pointene og giv mig noget karma istedet :-)
Avatar billede winerror Nybegynder
26. april 2004 - 15:35 #22
okay ;) hi hi gør jeg så :p
Avatar billede limemedia Nybegynder
26. april 2004 - 15:40 #23
Nåede vi at forvirre dig ? ;)
Avatar billede alvion Nybegynder
26. april 2004 - 15:42 #24
Taak
Avatar billede winerror Nybegynder
27. april 2004 - 08:01 #25
ja lidt tror jeg måske :D hi hi ;)
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
Kurser inden for grundlæggende programmering

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