---
title: "Generera slumpmässiga läsenord"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/52124-generera-slumpmässiga-läsenord"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "Niklasson"
published: "2002-09-03T16:37:23.000Z"
updated: "2002-09-08T17:19:22.000Z"
replies: 10
views: 526
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/php/52124-generera-slumpmässiga-läsenord"
---

# Generera slumpmässiga läsenord

## #1 — Niklasson, 2002-09-03T16:37Z

Jag använder denna koden för att generera slumpmässiga lösenord. Problemet är att när jag loopar c:a 3000 poster så lyckas den skapa flera identiska strängar.

Det verkar väl inte speciellt slumpmässigt med så många teckenalternativ och stränglängden som är 30 tecken?
Någon som har en bättre kod?

```php
$tecken = 'ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvwxyz0123456789';
mt_srand((double)microtime()*1000000^getmypid());
while (strlen($kod)<30)
{
$kod.=substr($tecken,(mt_rand()%strlen($tecken)),1);
}
```

Permalänk: https://www.webforum.nu/p/52124

## #2 — Matte, 2002-09-03T22:04Z

Nej, inte bättre, men en nödlösning:

```
<?php  
function getPassword(){
  $tecken =  'ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvwxyz0123456789';
  mt_srand((double)microtime()*1000000^getmypid());
  $kod = "";
  while (strlen($kod)<30)
  {
    $kod.=substr($tecken,(mt_rand()%strlen($tecken)),1);
  }
  return $kod;
}

$losenord = array();
while(sizeof($losenord)< 3000){
  $tLosenord = getPassword();
  if(!in_array($tLosenord, $losenord)){
    $losenord[] = $tLosenord;
  }
}

?>
```

Permalänk: https://www.webforum.nu/p/771631

## #3 — Niklasson, 2002-09-05T11:51Z

visst går det att kolla om det redan finns en sådan kodsträng, och generera en ny men visst är det konstigt. ? Om jag kör koden nedan så kan den skapa dubletter redan vid 400:e strängen...  :q

Hur kan det bli så?? Det borde ju finnas så jäkla många alternativ så det skulle ta forever att lyckas generera två likadana koder även om $kod bara skulle vara 10 tecken.

```php
<?php
ini_set("max_execution_time","86400");
ignore_user_abort(true);
set_time_limit(0);

$tecken = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890";

for ($i=1;$i<10000+1;$i++)
{
mt_srand((double)microtime()*1000000^getmypid());
	while(strlen($kod)<10)
	{
	$kod .= substr($tecken,(mt_rand()%strlen($tecken)),1);
	}
echo "$i. $kod<br>";
	if (eregi($kod, $langkod))
	{
	echo "dublett<br><br>";
	exit;
	}
$langkod .= $kod;
unset($kod);
}
?>
```

Permalänk: https://www.webforum.nu/p/772655

## #4 — Niklasson, 2002-09-07T06:36Z

\*Det löste sig\* ;)

Permalänk: https://www.webforum.nu/p/777110

## #5 — Matte, 2002-09-07T10:10Z

> **Niklasson skrev:**
>
> \*Det löste sig\* ;)

Vad var hemligheten ?

Permalänk: https://www.webforum.nu/p/777203

## #6 — Niklasson, 2002-09-07T19:39Z

\<?php
$kod = crc32($epost.microtime());
if ($kod \< 0) { $kod = $kod \* -1; }
?\>

(psphplogin) ;)

Permalänk: https://www.webforum.nu/p/777673

## #7 — Matte, 2002-09-07T20:50Z

Så istället för en 30-teckens kod använder du en 32-bitars checksumma ?
Men det vore fortfarande intressant att veta varför du inte fick unika koder.

Vad är psphplogin ?

Permalänk: https://www.webforum.nu/p/777724

## #8 — Jörgen HP, 2002-09-07T20:54Z

> **Matte skrev:**
>
> Vad är psphplogin ?

Jag skulle gissa på att det står för PärSvanströmPHPLogin :)

Permalänk: https://www.webforum.nu/p/777727

## #9 — Matte, 2002-09-07T21:14Z

Sökte på all världens sökmotorer, men glömde att söka på webForum.  :e

Permalänk: https://www.webforum.nu/p/777743

## #10 — Jörgen HP, 2002-09-07T21:16Z

Adress till den sökmotor som oftast ger bäst träffar :P

<http://www.webforum.nu/search.php?s=>

Permalänk: https://www.webforum.nu/p/777747

## #11 — Niklasson, 2002-09-08T17:19Z

Ja det är lite mystiskt, men jag är inte speciellt förvånad egentligen.
Jag har en simpel bannerrotator på min sida där jag provat slumpa med rand() och mt_rand() . Trots detta ser jag jätteklart i statistiken att det är väldigt ojämnt i resultaten. Vissa banners visas mycket mer än andra...  x(

Permalänk: https://www.webforum.nu/p/778258

---

Tråden på webben: https://www.webforum.nu/amne/php/52124-generera-slumpmässiga-läsenord
