SIDEBAR
»
S
I
D
E
B
A
R
«
Veilige wachtwoord functie
juli 18th, 2009 by Tim de Hoog

Met de onderstaande functie worden wachtwoorden veilig verwerkt in een database. Het wachtwoord wordt op basis van wachtwoord en e-mailadres via verschillende hash mechanismen omgezet naar een string. Deze string kan niet teruggezet worden naar een los e-mailadres en wachtwoord. Beide zijn dus altijd nodig voor de juiste combinatie.

Voordat het wachtwoord wordt gecodeerd, wordt er eerst gekeken of het wel lang genoeg is en ook cijfers bevat. Het wachtwoord mag ook niet bestaan uit meer cijfers dan letters om makkelijk kraken te voorkomen.

Aanroep: $wachtwoord = safe_password($wachtwoord, $emailadres);

Er zijn dus altijd twee variabelen nodig om de string te maken!

 PHP |  copy code |? 
01
02
function safe_password($password='', $emailadres=''){
03
	if(!empty($password) and !empty($emailadres)){
04
		// Controleren of het wachtwoord lang genoeg is.
05
		if(strlen($password) < 5){
06
			return false;
07
		}else{
08
			// Wachtwoord is lang genoeg, controleer of het voldoende cijfers bevat.
09
			$teller = 9;
10
			$nummer = 0;
11
			$hits = 0;
12
			while($nummer <= $teller){
13
				if(isset($positie)){
14
					// Begin een plek verder met controleren.
15
					$positie = strpos($password, "$nummer", $positie + 1);
16
				}else{
17
					$positie = strpos($password, "$nummer");				
18
				}
19
 
20
				if ($positie === false) {
21
					// Nummer komt niet meer voor.
22
					$nummer++;
23
				}else{
24
					// Nummer komt voor hoog hits op met 1.
25
					$hits++;
26
				}
27
 
28
			}
29
			// Controleren of percentage niet meer dan 50% van totaal bevat.
30
			if($hits = 2){
31
				$percentage = $hits / strlen($password) * 100;
32
				$percentage = number_format($percentage, 0, '.', '');
33
				if($percentage > 50){
34
					return false;
35
				}
36
			}else{
37
				return false;
38
			}
39
 
40
			// Hash wachtwoord + gebruikersnaam + saltkey en stuur het terug.
41
			$saltkey = '!dk#9JQ}sfje#JFN234?@';
42
			$password = "$password$emailadres";
43
			return sha1(md5($password).$saltkey);
44
		}
45
	}else{
46
		return false;
47
	}
48
} 
49
 
50


Leave a Reply

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

»  Substance:WordPress   »  Style:Ahren Ahimsa