[nohtml]
Hmm.. ik denk dat dit veel makkelijker kan

Je maakt een array waar je al je functie- en variabele namen inzet. Vervolgens maak je een md5 hash van elke functie- en variabele naam, in combinatie met een timestamp, en die replace in je javascriptje. Is iets flexibeler, want zo hoef je niet voor elke functie of variabele weer aan je script te gaan klooien.. je hoeft 'm alleen maar even toe te voegen in je array.
Zaak is dan wel om te zorgen dat variabelen en functies niet toevallig hetzelfde heten, maar daar moet je maar zelf voor zorgen
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
| // obfuscator functie
function obfuscate($value) {
return md5($value . microtime());
}
// functies en variabelen
$functies = array("blaat", "melp");
$obfuscated = array();
// bereken van elke functie en variabele een (vrijwel) unieke md5 hash
foreach ($functies as $value) {
$obfuscated[$value] = obfuscate($value);
}
$javascript = '<script> ... blah blha hier je hele script </script>';
foreach ($obfuscated as $key => $value) {
$javascript = str_replace($key, $value, $javascript);
}
print $javascript; |
Oh ja, newlines eruit slopen is ook wel cool:
PHP:
1
| str_replace("\n", "", $javascript); |
Dit is overigens niet dé manier om te obfuscaten, als je het goed wilt doen dan maak je een mooie functie die middels een aantal regexen zelf uitzoekt wat functies zijn en wat variabelen zijn, zodat je dat ook nog niet zelf op hoeft te geven.
[
Voor 0% gewijzigd door
Pelle op 08-11-2002 14:42
. Reden: typo ]