var doorsturen "onzichtbaar"
plaatje.php genereert aan de hand van $code een plaatje, ik snap dat dit op deze manier natuurlijk niks weergeeft in het plaatje. maar mijn vraag is nu
hoe kan ik er voor zorgen dat ik dit wel krijg ZONDER plaatje.php?code=$code bijv te gebruiken.
hiermee wil ik dus aantonen dat het niet mogelijk is om $code de achterhalen zonder op bijv het plaatje te kijken.
Gewijzigd op 14/04/2004 22:10:00 door Arnoldxp
Je wilt zonder ?code=$code...
Waarom en wat wil je aantonen ?
nou ik wil vereficatie via een img maar de gebruiker (of robot) mag de code natuurlijk niet achterhalen, dus het mag niet via de url gePARSED worden zoals je dat doet via vraagtekens...
Maar ik zou niet weten hoe...
ben wel nieuwsgierig...
ben dus niet je enige, dat scheelt. ik dacht eerst via database. maar als iemand dan zn F5 toets naar de filistijnen helpt, zit ik met een overvolle database...dus dat werd m niet, posten kan ook niet want dan word t wel heel complex om automatisch te submitten. tja ik weet t niet meer.
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
<?php
function bytexor($a,$b,$l)
{
$c="";
for($i=0;$i<$l;$i++) {
$c.=$a{$i}^$b{$i};
}
return($c);
}
function binmd5($val)
{
return(pack("H*",md5($val)));
}
function decrypt_md5($msg,$heslo)
{
$key=$heslo;$sifra="";
$key1=binmd5($key);
while($msg) {
$m=substr($msg,0,16);
$msg=substr($msg,16);
$sifra.=$m=bytexor($m,$key1,16);
$key1=binmd5($key.$key1.$m);
}
echo "\n";
return($sifra);
}
function crypt_md5($msg,$heslo)
{
$key=$heslo;$sifra="";
$key1=binmd5($key);
while($msg) {
$m=substr($msg,0,16);
$msg=substr($msg,16);
$sifra.=bytexor($m,$key1,16);
$key1=binmd5($key.$key1.$m);
}
echo "\n";
return($sifra);
}
// Example of usage...
$message = "This is a very long message, but it is very secret and important
and we need to keep the contents hidden from nasty people who might want to steal it.";
$key = "secret key";
$crypted = crypt_md5($message, $key);
echo "Encoded = $crypted<BR>"; // returns ¦ý¼=¯ ¶òºÏ`¬ù<ÂH ëÇ{.‡1º{ïåÉ‘Ñ’JÞV£+ß³jŠeÎ
$uncrypted = decrypt_md5($crypted, $key);
echo "Unencoded = $uncrypted"; // returns This is a very long message (etc)
?>
function bytexor($a,$b,$l)
{
$c="";
for($i=0;$i<$l;$i++) {
$c.=$a{$i}^$b{$i};
}
return($c);
}
function binmd5($val)
{
return(pack("H*",md5($val)));
}
function decrypt_md5($msg,$heslo)
{
$key=$heslo;$sifra="";
$key1=binmd5($key);
while($msg) {
$m=substr($msg,0,16);
$msg=substr($msg,16);
$sifra.=$m=bytexor($m,$key1,16);
$key1=binmd5($key.$key1.$m);
}
echo "\n";
return($sifra);
}
function crypt_md5($msg,$heslo)
{
$key=$heslo;$sifra="";
$key1=binmd5($key);
while($msg) {
$m=substr($msg,0,16);
$msg=substr($msg,16);
$sifra.=bytexor($m,$key1,16);
$key1=binmd5($key.$key1.$m);
}
echo "\n";
return($sifra);
}
// Example of usage...
$message = "This is a very long message, but it is very secret and important
and we need to keep the contents hidden from nasty people who might want to steal it.";
$key = "secret key";
$crypted = crypt_md5($message, $key);
echo "Encoded = $crypted<BR>"; // returns ¦ý¼=¯ ¶òºÏ`¬ù<ÂH ëÇ{.‡1º{ïåÉ‘Ñ’JÞV£+ß³jŠeÎ
$uncrypted = decrypt_md5($crypted, $key);
echo "Unencoded = $uncrypted"; // returns This is a very long message (etc)
?>
Je stuurt het WEL mee in de link maar dan op deze manier :P
Dus code=¦ý¼=¯ ¶òºÏ`¬ù<ÂH ëÇ{.‡1º{ïåÉ‘Ñ’JÞV£+ß³jŠeÎ (van het voorbeeld)
Dan op de andere page decrypt je het weer :)
ja dat begreep ik, bedankt voor de tip ik ga t ff uittesten
arnoldxp
Gewijzigd op 14/04/2004 22:42:00 door Mitch X
het is geen md5 en lijkt er niet eens op
Lkkr boeiend hoe die functie heet, alsie maar werkt :). Het jij mss een beter idee dan?
In plaatje.php, kan je dan gewoon global $code; gebruiken volgens mij..
Als dat toch niet werkt, kan je van $code ook een session maken, en die vervolgens weer in plaatje.php uitlezen.
In plaatje.php, kan je dan gewoon global $code; gebruiken volgens mij..
Als dat toch niet werkt, kan je van $code ook een session maken, en die vervolgens weer in plaatje.php uitlezen.
Oeps, per ongeluk 2x geklikt... ehm, bassie..! bug ;-)
Quote:
Oeps, per ongeluk 2x geklikt... ehm, bassie..! bug ;-)
heb ik ook wel eens hoor
maar wat bedoel je precies met globals??
-----aanmelden.php-----
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
<?
$code = 12345;
session_start();
$_SESSION['code'] = $code;
echo "<img border='0' src=\"code.php\">";
?>
$code = 12345;
session_start();
$_SESSION['code'] = $code;
echo "<img border='0' src=\"code.php\">";
?>
-----code.php-----
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
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
<?php
session_start();
$code = $_SESSION['code'];
//Maak plaatje aan
$plaatje = ImageCreateTrueColor(45,14);
//text is set
if (!isset($code)) $code = "ERROR";
//achtergrond kleur
$back = ImageColorAllocate($plaatje, 222, 222, 241);
//tekst kleur
$front = ImageColorAllocate($plaatje, 0, 0, 0);
//achtergrond kleuren
imagefill ($plaatje, 0, 0, $back);
//tekst schrijven
imagettftext ($plaatje, 14, 0, 0, 14, $front, "dig.ttf", $code);
// Schrijf de ouput weg
header("Content-type: image/jpeg");
ImageJPEG($plaatje, '', 90);
ImageDestroy($plaatje);
?>
session_start();
$code = $_SESSION['code'];
//Maak plaatje aan
$plaatje = ImageCreateTrueColor(45,14);
//text is set
if (!isset($code)) $code = "ERROR";
//achtergrond kleur
$back = ImageColorAllocate($plaatje, 222, 222, 241);
//tekst kleur
$front = ImageColorAllocate($plaatje, 0, 0, 0);
//achtergrond kleuren
imagefill ($plaatje, 0, 0, $back);
//tekst schrijven
imagettftext ($plaatje, 14, 0, 0, 14, $front, "dig.ttf", $code);
// Schrijf de ouput weg
header("Content-type: image/jpeg");
ImageJPEG($plaatje, '', 90);
ImageDestroy($plaatje);
?>
bedankt iedereen
arnoldxp