een-captcha-maken
//IMAGES ZIJN TE DOWNLOADEN OP http://proeftuin.dutchville.com/index.php?dir=codegenerator
//PAGINA WAARIN DE IMAGE GEPLAATST WORDT(start.php):
//STAPPEN:
//1. CREATIE VAN KEYCODE (formaat XXXX-XXXX-XXXX) dmv functie KEYGEN
//2. ENCRYPTIE VAN DE KEYCODE dmv functie ENCRYPT
//3. AANROEP VAN PLAATJE MET GEENCODEERDE KEYCODE
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
<?php
function keygen($max)
{
$items = "1234567890";
$x = 1;
$total = strlen($items) - 1;
while($x <= $max)
{
$rand = rand(0, $total);
$item = substr($items, $rand, 1);
if($x == 1)
{
$key = $item;
}
elseif($x > 1)
{
$key .= $item;
}
$x++;
}
return $key;
}
function encrypt($string, $key) {
$result = '';
for($i=0; $i<strlen($string); $i++) {
$char = substr($string, $i, 1);
$keychar = substr($key, ($i % strlen($key))-1, 1);
$char = chr(ord($char)+ord($keychar));
$result.=$char;
}
return base64_encode($result);
}
$keycode = keygen(4) . "-" . keygen(4) ."-" . keygen(4);
$imglink = encrypt("$keycode", "ditismijngeheimesleutel");
?>
<html>
<body>
<img src="img.php?showcode=<?php echo $imglink; ?>">
</body>
</html>
function keygen($max)
{
$items = "1234567890";
$x = 1;
$total = strlen($items) - 1;
while($x <= $max)
{
$rand = rand(0, $total);
$item = substr($items, $rand, 1);
if($x == 1)
{
$key = $item;
}
elseif($x > 1)
{
$key .= $item;
}
$x++;
}
return $key;
}
function encrypt($string, $key) {
$result = '';
for($i=0; $i<strlen($string); $i++) {
$char = substr($string, $i, 1);
$keychar = substr($key, ($i % strlen($key))-1, 1);
$char = chr(ord($char)+ord($keychar));
$result.=$char;
}
return base64_encode($result);
}
$keycode = keygen(4) . "-" . keygen(4) ."-" . keygen(4);
$imglink = encrypt("$keycode", "ditismijngeheimesleutel");
?>
<html>
<body>
<img src="img.php?showcode=<?php echo $imglink; ?>">
</body>
</html>
//CREATIE VAN DE IMAGE (img.php) obv bar.png
//STAPPEN:
//1. DECRYPTIE VAN GET-VAR
//2. CREATIE VAN DE IMAGE
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<?php
function decrypt($string, $key) {
$result = '';
$string = base64_decode($string);
for($i=0; $i<strlen($string); $i++) {
$char = substr($string, $i, 1);
$keychar = substr($key, ($i % strlen($key))-1, 1);
$char = chr(ord($char)-ord($keychar));
$result.=$char;
}
return $result;
}
$keycode = $_GET['showcode'];
$keycode = decrypt($keycode, ditismijngeheimesleutel);
header("Content-type: image/png");
$im = imagecreatefrompng("bar.png");
$tekst1 = "REG CODE";
$xas1 = 55;
$yas1 = 10;
$kleur1 = imagecolorallocate($im, 255, 102, 0);
imagestring($im, 4, $xas1, $yas1, $tekst1, $kleur1);
$tekst2 = $keycode;
$xas2 = 25;
$yas2 = 35;
$kleur2 = imagecolorallocate($im, 102, 153, 255);
imagestring($im, 6, $xas2, $yas2, $tekst2, $kleur2);
imagepng($im);
imagedestroy($im);
header("Location: bar.png");
?>
function decrypt($string, $key) {
$result = '';
$string = base64_decode($string);
for($i=0; $i<strlen($string); $i++) {
$char = substr($string, $i, 1);
$keychar = substr($key, ($i % strlen($key))-1, 1);
$char = chr(ord($char)-ord($keychar));
$result.=$char;
}
return $result;
}
$keycode = $_GET['showcode'];
$keycode = decrypt($keycode, ditismijngeheimesleutel);
header("Content-type: image/png");
$im = imagecreatefrompng("bar.png");
$tekst1 = "REG CODE";
$xas1 = 55;
$yas1 = 10;
$kleur1 = imagecolorallocate($im, 255, 102, 0);
imagestring($im, 4, $xas1, $yas1, $tekst1, $kleur1);
$tekst2 = $keycode;
$xas2 = 25;
$yas2 = 35;
$kleur2 = imagecolorallocate($im, 102, 153, 255);
imagestring($im, 6, $xas2, $yas2, $tekst2, $kleur2);
imagepng($im);
imagedestroy($im);
header("Location: bar.png");
?>
In het bestand start.php wordt de image getoond. In de broncode is alleen de geencrypte keycode te zien. Stel dat je deze code plaatst in een registratiescript, dan kun je controleren of de waarde die de gebruiker invoerd overeenkomt met die van het plaatje.
Thats it!
gr.
Joost