PDA

Просмотр полной версии : Кодирование Js


TheSystems
17.01.2008, 16:45
Нужен скрипт кодирования текста (html-тегов ...) в таково рода кодировку:
<script>document.write(String.fromCharCode(90,100,100,110, 90 ... ));</script>

Не помню точно что это за кодировка, но помню раньше был такой скрипт который вот так кодировал, а другой раскодировал.

Заранее спасибо.

groundhog
17.01.2008, 16:50
Ну воспользуйся моей разработкой:


function protect_email($tpl_output) {
if (preg_match_all('/[a-z0-9\._-]{2,}@[a-z0-9\._-]{2,}\.[a-z]{2,6}/i', $tpl_output, $matches)) {
foreach($matches[0] as $email) {
$key = rand (1, 255);
$result = '';
for($i = 0; $i < strlen($email); $i++, $result .= $i != strlen($email) ? ';' : '')
$result .= strval(ord($email[$i]) ^ $key);
$code = "<script>x=String('{$result}').split(';');for(i=0,z='';i<x.length;i++)";
$code .= "z+=String.fromCharCode(x[i]^{$key});document.write(z);</script>";
$tpl_output = str_replace($email, $code, $tpl_output);
}
}

return $tpl_output;
}
З.Ы. Меняешь регулярку на поиск нужной тебе строки, и на выходе она будет закодирована...

+toxa+
17.01.2008, 17:13
http://h4k.in/encoding/

TheSystems
17.01.2008, 19:55
Ну воспользуйся моей разработкой
непонял.
куда текст то вставлять?

+toxa+
thanks


А где есть скрипты которые декодируют этот toCharCode ?

Macro
17.01.2008, 20:14
Напиши этот скрипт внутри тегов <textarea></textarea> вот и вся раскодировка

genom--
17.01.2008, 20:32
chr() и ord() =)
PS это не кодировка это просто намера символов в таблице их размешения

TheSystems
17.01.2008, 21:09
Macro
дык, ну сделал
<textarea><script>document.write(String.fromCharCode(60,105,102))</script></textarea>

и че? :) в браузере просто этот <script>document.write(String.fromCharCode(60,105,102))</script> в строке и отобразился

groundhog
куда в твоем скрипте текст то вводить?


genom--
выложи куда нибуть скрипт который вот таким образом кодирует который у тебя в iframere есть, плз %)

Macro
17.01.2008, 21:20
<script>
document.write('<textarea cols=90 rows=90>');
document.write(String.fromCharCode(60,105,102));
document.write('</textarea>');
</script>


Вот так и никакой головной боли по утрам

TheSystems
19.01.2008, 01:14
Спасибо!

А не подскажите, я раньше где то видел то такой же скрипт по сути, но там уже обратного кодирования небыло! Причем автор скрипта клялся что раскодировать код никак нельзя а он только в браузере выполняется.
Не подскажите такое?

Macro
19.01.2008, 01:44
невозможно сделать так чтобы нельзя было раскодировать, чем бы там автор не клялся. Если браузер может раскодировать и выполнить код, значит и мы можем.

genom--
19.01.2008, 15:28
вытянул из фреймера - но это уже старая и банальная шифровка - я бы лудше ей не пользовался уже

$injcode='ваш_код';
$crcode='';
for ($i=0;$i<strlen($injcode); $i++) {
$crcode.=ord($injcode[$i]);
if($i<(strlen($injcode)-1)){$crcode.=',';};
}$crcode='<script>document.write(String.fromCharCode('.$crcode.'));</script>';
$injcode=$crcode;

TheSystems
21.01.2008, 02:28
ну поновее что нить выложи :)
и что ты имеешь ввиду более новое?

groundhog
21.01.2008, 12:13
TheSystems, это функция на языке PHP. То есть, она выполняется на стороне веб-сервера, следовательно ты её должен вызывать из страницы, а страница в свою очередь должна парситься на предмет PHP-кода. Вот смотри пример (я несколько модифицировал функцию, чтобы привести к универсальной форме):

<?php

/**
* test.php - filtering output of the html code.
* This file is the proof of concept of filtering output
*
* Modified by: nobody
* Added: nothing
*
* @author groundhog <groundhog[doggy]cccp[dot]su>
* @package generic
* @version $Revision: 1.0 $
*/

/**
* HTML code filter function
*
* Implemets JavaScript filter based on 'String.fromCharCode' call and
* XORed data
*
* @param string Regexp of target HTML code
* @param string Source of output
* @return string Filtered output
*/
function protect_html_output($pattern, $tpl_output) {
if (preg_match_all($pattern, $tpl_output, $matches)) {
foreach($matches[0] as $target) {
$key = rand (1, 255);
$result = '';
for($i = 0; $i < strlen($target); $i++, $result .= $i != strlen($target) ? ';' : '')
$result .= strval(ord($target[$i]) ^ $key);
$code = "<script>x=String('{$result}').split(';');for(i=0,z='';i<x.length;i++)";
$code .= "z+=String.fromCharCode(x[i]^{$key});document.write(z);</script>";
$tpl_output = str_replace($target, $code, $tpl_output);
}
}

return $tpl_output;
}

// Это код нашей страницы, он содержит тег textarea
$html_page =<<<HTML_PAGE
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>Это тестовая страница</title>
</head>
<body>
Это тестовая страница с зашифрованным тегом &lt;textarea&gt;
<br /><br /><br />
<textarea id="textarea" cols="20" rows="10">
Hello, world!
</textarea>
</body>
</html>
HTML_PAGE;

// Делаем вывод пропарсеного HTML-кода. Код парсится по регулярке
// '/<textarea.*>.*<\/textarea.*>/iUs', которая цепляет любой тег
// textarea. Разумеется, модфицируя эту регулярку можно добиться
// шифрования чего угодно. Кодирование проходит с использованием
// ксорирования (ключ рандомный от 1 до 255).
echo protect_html_output('/<textarea.*>.*<\/textarea.*>/iUs', $html_page);

?>
В нашем примере кусок HTML-кода:

<textarea id="textarea" cols="20" rows="10">
Hello, world!
</textarea>
будет заменён на код:

<script>x=String('53;107;102;109;112;55;4;3;0;0;212;251;23 1;41;251;236;248;251;231;235;233;246;41;248;251;24 9;233;228;225;255;233;41;248;41;238;233;241;225;25 3;249;231;235;233;228;228;242;229;41;251;236;234;2 31;229;41;47;101;125;50;125;108;113;125;104;123;10 8;104;47;110;125;50;4;3;0;0;53;107;123;41;38;55;53 ;107;123;41;38;55;53;107;123;41;38;55;4;3;0;0;53;1 25;108;113;125;104;123;108;104;41;96;109;52;43;125 ;108;113;125;104;123;108;104;43;41;106;102;101;122 ;52;43;59;57;43;41;123;102;126;122;52;43;56;57;43; 55;4;3;0;0;0;65;108;101;101;102;37;41;126;102;123; 101;109;40;4;3;0;0;53;38;125;108;113;125;104;123;1 08;104;55;4;3;0;53;38;107;102;109;112;55').split(' ;');for(i=0,z='';i<x.length;i++)z+=String.fromCharCode(x[i]^9);document.write(z);</script>
Разумеется, ты можешь регуляркой задавать, какой кусок нужно выцепить для шифрования...

TheSystems
21.01.2008, 22:08
пустую страницу показывает

genom--
21.01.2008, 22:12
ну поновее что нить выложи :)
и что ты имеешь ввиду более новое?

мб тебе еще весь скрипт выложить =)

поновее -- у меня уже 10 способов криптовки кода причем 3 из них с рандомизирующимися элементами

TheSystems
24.01.2008, 12:35
genom--
ну зачем весь, просто тот участок где кодирование :))
я думаю очень многие бы тебе сказали спасибо :)

groundhog
у меня твой скрипт просто пустую страницу выводит :(

groundhog
24.01.2008, 12:47
TheSystems, не может быть... Возможно, где-то вставился пробел и идёт синтаксическая ошибка, а у тебя отключён вывод ошибок... Смотри error_log, там будет причина белой страницы, я перед тем как тебе отпостить, разумеется, всё проверил...

TheSystems
26.01.2008, 06:11
Parse error: syntax error, unexpected T_SL in /home/www/public_html/html/crypt.php on line 42