Avatar billede oasen Nybegynder
08. juli 2003 - 04:21 Der er 12 kommentarer og
1 løsning

Lav et random-streng

Det har vendt et par gange før, men jeg kan ikke helt få det sat ordentligt sammen.

Jeg vil gerne have en lille funktion, der genererer en kode på 20 tegn bestående af tilfældigt udvalgte bogstaver og tal.
Koden skal, lige inden min formular sendes, indlæses i et skjult felt og sendes med resten.
Er det en sikker måde at gøre det på, hvis det er vigtigt, at man ikke kan få adgang til at se denne kode på nogen måde?

Altså noget lignende:
<form onSubmit="this.kode.value=LavKode();">
<input type="hidden" name="kode">
</form>
Avatar billede squashguy Nybegynder
08. juli 2003 - 04:25 #1
Du mener at generere en kode på klienten, som brugeren på INGEN måde må kunne få fat på? I så fald er svaret nej.
Avatar billede roenving Novice
08. juli 2003 - 04:27 #2
Ja, næsten, for genereringen og afsendelsen tager kun et split-sekund, så medmindre der er installeret en sniffer, vil man ikke kunne få fat i det ...

function LavKode(f){
var tegn = "abcdefghijklmnopqrstuvwxyzæøåABCDEFGHIJKLMNOPQRSTUVWXYZÆØÅ0123456789";
var kode = "";
for(i=0;i<20;i++)kode+=tegn.charAt(Math.floor(Math.random()*tegn.length))
f.kode.value=kode;
return true;
}

<form onSubmit="return LavKode(this);">
<input type="hidden" name="kode">
</form>
Avatar billede squashguy Nybegynder
08. juli 2003 - 04:34 #3
Kære roenving... alle med respekt for sig selv har en sniffer installeret ;-)
Avatar billede squashguy Nybegynder
08. juli 2003 - 04:36 #4
Ellers laver man da bare en manuel submit, og selv bestemmer koden...
Avatar billede roenving Novice
08. juli 2003 - 04:37 #5
Jeps, hvis de surfer for at kunne hente skjulte ting ?o]

-- derfor er jo også sådan, at hvis noget er _afgørende_ at holde for sig selv, så skal det aldrig ramme andres computere
Avatar billede oasen Nybegynder
08. juli 2003 - 14:27 #6
Jeg skal bruge det i forbindelse med et loginsystem. Alle passwords brugeren indtaster, krypteres med MD5 inden afsendelsen - og det er fint nok. Men jeg aner ikke, hvordan jeg skal håndtere glemte passwords UDEN at sende noget ukrypteret. Jeg skal jo tildele vedkommende et nyt password, men jeg er nødt til både at have dette i rå version og i krypteret version. Den rå skal sendes til brugeren, og den krypterede skal i databasen.

Er det til at forstå?
Avatar billede roenving Novice
08. juli 2003 - 15:16 #7
Jamen så skal du jo ikke bruge det client-side ...

Så gør du vel bare det, når du får en request på glemt password, at du sender det ukrypteret (og samtidig gemmer den krypterede udgave ,-) og kræver at brugeren laver det om første gang han logger ind ...

-- og som jeg forstår md5 krypteres det på serveren, klienten har vel ikke krypteringsmaskinen installeret !-)
Avatar billede oasen Nybegynder
08. juli 2003 - 16:26 #8
Hmm... interessant... Sagen er netop den, at krypteringen i dette tilfælde skal foregå på serveren, hvis passwordet er glemt. Dvs.

1) Generér tilfældig kode
2) Send denne til brugerens e-mail
3) Krypter koden med MD5
4) Indsæt den krypterede kode i DB

Men så er spørgsmålet, hvordan jeg får krypteret en variabel i ASP med MD5 serverside og får den overført til en ny ASP-variabel.
Avatar billede roenving Novice
08. juli 2003 - 16:29 #9
Hash-værdien kan vel behandles som en almindelig streng gætter jeg på -- men så må du jo nok få svar på det i asp-kategorien ,-)
Avatar billede oasen Nybegynder
08. juli 2003 - 16:45 #10
ASP kan tilsyneladende ikke - derimod kan ASP.net og PHP godt.
Jeg ville dog foretrække at få det krypteret i databasen, men det er vist kun MySQL, der kan det, og jeg bruger MS SQL. Irriterende....

Men jeg siger tak for hjælpen! Lægger du svar? =)
Avatar billede roenving Novice
08. juli 2003 - 17:30 #11
Jamen, jeg håber da du får knækket den (altså ikke koden *g*)
'-)
Avatar billede oasen Nybegynder
09. juli 2003 - 02:14 #12
Jeg fandt en laaaang ASP-kode, der kunne klare det, så det fungerer nu ;)
Avatar billede roenving Novice
09. juli 2003 - 02:26 #13
oki -- og tak for points ;~}
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