Avatar billede BTEngineer Novice
23. oktober 2005 - 20:30 Der er 13 kommentarer og
1 løsning

Random kode?

Hej Eksperter.

Jeg er igang med et community.
Jeg vil gerne have at mine brugere som er i communityet har mulighed for at have en meget svær kode.
De kan selvfølgelig selv lave en, men man kunne vel også lave en random kode. Koden må max være på 16 tegn.

Jeg har prøvet med:

<?php
$hardcode = rand('a,b,c,d,e,f,g,h,i,j,k,l,n,m,p,q,r,s,t,u,y,v,x,1,2,3,4,5,6,7,8,9');
echo substr($hardkode,0,16);
?>

Det virker ikke :(
- Der kommer ingen fejlmeddelser.

Håber nogen kan hjælpe.

M.V.H
Henrik Nielsen.
Avatar billede gf Nybegynder
23. oktober 2005 - 20:31 #1
Avatar billede jaw Nybegynder
23. oktober 2005 - 20:32 #2
Du kunne lave noget a'la:

$hardcode = array('a,b,c,d,e,f,g,h,i,j,k,l,n,m,p,q,r,s,t,u,y,v,x,1,2,3,4,5,6,7,8,9');
$password = "";
for($i = 1; $i < 10; $i++) {
  $random = rand(0, count($hardcode));
  $password .= $array[$random];
}
Avatar billede jaw Nybegynder
23. oktober 2005 - 20:35 #3
Nej, sådan her skal den lige være:

$hardcode = array('a','b','c','d','e','f','g','h','i','j','k','l','n','m','p','q','r','s','t','u','y','v','x','1','2','3','4','5','6','7','8','9');
$password = "";
for($i = 1; $i < 10; $i++) {
  $random = rand(0, count($hardcode)-1);
  $password .= $hardcode[$random];
}

:)
Avatar billede erikjacobsen Ekspert
23. oktober 2005 - 20:35 #4
Eller (men det er jo det samme...)

  $s="abcdefghikjlmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
  for ($i=0;$i<16;$i++) {
    $k=$k.$s[rand(0,strlen($s))];
  }
  print $k;
Avatar billede jaw Nybegynder
23. oktober 2005 - 20:37 #5
Jeg satte 10 i min for-løkke, så passwordet bliver på 9 tegn, men det kan du jo bare ændre til det antal tegn du nu vil have.
Avatar billede BTEngineer Novice
23. oktober 2005 - 21:06 #6
Jeg valgte din løsning erikjacobsen..
Smid svar :D ?
Avatar billede yHec Novice
23. oktober 2005 - 21:14 #7
Hvorfor ikke lade php gøre arbejdet???
Jeg ville gøre følgende:

$kode=substr(md5(rand()),0,10);

Så får du det hele i en linje...
Den giver et 10 karakterer langt kodeord, der gerne skulle være svært at gennemskue.

Y
Avatar billede BTEngineer Novice
23. oktober 2005 - 21:24 #8
y, kodeordet må ikke komme til at indeholde _ &%!"#¤ osv osv..
Avatar billede erikjacobsen Ekspert
23. oktober 2005 - 21:32 #9
Jeg samler ikke på point, tak.
Avatar billede yHec Novice
23. oktober 2005 - 21:32 #10
Det kommer det heller ikke til. MD5 returnerer et hex-nummer. Dvs der kun er a-z + 0-9 i strengen. Den er 32 tegn lang uden %&¤# etc.

se http://dk.php.net/manual/da/function.md5.php

Y
Avatar billede yHec Novice
23. oktober 2005 - 22:03 #11
Dvs, da det er et hex nummer, er det a-f og 0-9 stregen indeholder

Y
Avatar billede olebole Juniormester
24. oktober 2005 - 11:18 #12
<ole>

- og hvis du vil have bedre tilfældighed, bør du bruge mt_rand(), som er langt bedre end rand().

Desuden kan du gøre strengen endnu værre at knække, hvis du bruger både små og store bogstaver - og så bør man naturligvis anvende ca. det samme antal tal som bogstaver:

<?
function geUniq($len=8) {
    $c = "0123456789abcdefghijklm9876543210nopqrstuvwxyz0123456789ABCDEFGHIJKLM9876543210NOPQRSTUVWXYZ9876543210";
    $cLen = strlen($c);
    for ($i=0,$s=""; $i<$len; $i++) {
        $s .= $c[mt_rand(0, $cLen)];
    }
    return $s;
}

print geUniq();
print "<br>";
print geUniq(24);
?>

/mvh
</bole>
Avatar billede net-base.dk Nybegynder
24. oktober 2005 - 14:22 #13
Hej... denne kode har jeg engagn brugt, den laver en kode på 16 tegn...

<?php

$length = 16;
  $nps = "";
  for($i=0;$i<$length;$i++)
  {
      $nps .= chr( (mt_rand(1, 36) <= 26) ? mt_rand(97, 122) : mt_rand(48, 57 ));
  }
  echo $nps;

?>
Avatar billede sqwer Nybegynder
25. oktober 2005 - 15:35 #14
@olebole: Hvorfor "naturligvis anvende ca. det samme antal tal som bogstaver"?
Man får vel et "mere tilfældigt" resultat ved at hvert enkelt tegn vælges tilfældigt i abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ - ellers vil tallene jo være overrepræsenteret... (?)
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