Простой метод сокрытия PHP-кода. От знатоков PHP, конечно, ничего не скроет, но новичкам усложнит жизнь — это точно.
Для создания своего минизенда будем использовать следующие функции PHP:
base64_encode("string"); // кодирует строку с помощью системы кодирования MIME base64.
base64_decode("string"); // обратное раскодирование из base64.
gzdeflate("string"); // "сплющивание" строки.
gzinflate("string"); // "распрямление" "сплющиванной" строки.
eval("string"); //выполненbt строки как PHP-кода.
Прятать код мы будем следующим образом:
Создадим шифрующий скрипт следующего содержания:
<?
echo gzdeflate(base64_encode('string'));
?>
Здесь base64_encode () закодирует нашу строку, а gzdeflate () сожмет ее чтобы зашифрованный скрипт не получился огромного размера.
Далее откроем скрипт, код которого мы хотим скрыть, вырежем конструкцию, котрую мы хотим скрыть (или весь скрипт), и вставим ее вместо «string» шифрующего скрипта (не забыв заэскейпить все апострофы!). Например, мы хотим зашифровать конструкцию:
for ($i=0; $i<5; $i++){
echo 'Hello World!';
}
Копируем этот кусок кода в шифрующий скрипт (не забыв заэскейпить апострофы, т.е. поставить перед ними знак ):
<?
echo gzdeflate(base64_encode('
for ($i=0; $i<5; $i++){
echo 'Hello World!';
}
'));
?>
И запустим его. Если Вы ни наделали синтаксических ошибок, то он нам выдаст какую-то белиберду, типа такой:
????tN?N
1 (??t???`:???;?????1??=,+??"?? #'????-?,9?"?38??9 (??d
Это и есть наш зашифрованный скрипт.
Теперь надо вставить этот зашифрованный фрагмент в Ваш скрипт.
Для этого в то место скрипта, которое мы зашифровали вставляем следующий код:
eval(gzinflate(base64_decode('string');
Вместо string подставляем белиберду, которую нам выдал скрипт-шифровальщик. В нашем примере получится так:
eval(gzinflate(base64_decode('????tN?N
1(??t???`:???;?????1??=,+??"?? #'????-?,9?"?38??9(??d');
Все! Можно спокойно использовать скрипт.
Кстати, эта кодирующая/раскодирующая конструкция будет работать абсолютно на любых хостингах, в т.ч. и на бесплатных.
|
|
Webmoney Z163628999150, R617151845974
|
Объясните пожалуйста, в чем разница одинаковых значений и не ошибка ли это в написании:
gzdeflate («string»); // «сплющивание» строки.
gzdeflate («string»); // «распрямление» «сплющиванной» строки.
Да, спасибо за подсказку! Это опечатка.
Во втором случае — gzinflate ()
Вот это уже другое дело!!!
Как говорил М.Жванецкий: «...Тщательней надо, ребята!»
Проверяйте пожалуйста все записи перед публикацией, чтобы не было потом... мучительно больно... за свою оплошность... (шутка!)
Спасибо за оперативное реагирование!
Спасибо! Мне не скрыть надо было, а раскрыть. Как раз по такому методу.
18:49
эт уж совсем от ламеров