Помогите сделать задание, пожалуйста.
function decrypt(s)
{ var r = ""; var key = arguments.callee.toString(); var l = key.length; s = unescape(s); for(i=0;i<s.length;i++) r+=String.fromCharCode(s.charCodeAt(i) ^ key.charCodeAt(i % l)); return r; } eval(decrypt('IZ7%0C%01%1BO%05E%1DE%0A%01Y%3A%15%5 E%12znxJ%7D%7E%7F%11%1A9P%18%13%5C%11%13%18%09%22y %24%0D%03%06%13%00AM-O%06R%1C%09%5BI%1B%0A%15%19%2C%0D%08O%0AS%5BDK%23g ')); закоментите пожалуйста все строчки, сам в скриптах ни бум бум. в принципе понимаю только половину. пугает var key = arguments.callee.toString(); и r+=String.fromCharCode(s.charCodeAt(i) ^ key.charCodeAt(i % l)); |
по любому из операторов, последовательности операторов можно загуглить . и прокоментить самостоятельно в течении получаса
|
ну я загуглил оператор arguments.callee.toString, ни одного толкового объяснения с примерчиками не нашел, up
|
Цитата:
http://www.google.com.ar/search?sour...w=1920&bih=911 |
я конечно могу за ночь выучить java script(обещаю сделать это). не мог бы ты вычислить конечное r?
|
Цитата:
Задача ваша, решение ее нужно вам, значит и решать ее нужно вам. Если хотите чтобы другие за вас решили эту задачу, сначала следует объяснить почему это нужно другим людям Цитата:
|
кхм, спасибо конечно за наставление на путь истинный... я бы сюда не писал, знай я каким образом выполнить скрипт и вывести результат. пытался через стандартный сервер скриптов винды прогнать его, вписав в исходник вывод r до ретёрна. (если вам не трудно "прогоните" скрипт и напишите результат пожалуйста)
|
function decrypt(s) { var r = ""; var key = arguments.callee.toString(); var l = key.length; s = unescape(s); for(i=0;i<s.length;i++) r+=String.fromCharCode(s.charCodeAt(i) ^ key.charCodeAt(i % l)); return r; } alert(decrypt('IZ7%0C%01%1BO%05E%1DE%0A%01Y%3A%15%5 E%12znxJ%7D%7E%7F%11%1A9P%18%13%5C%11%13%18%09%22y %24%0D%03%06%13%00AM-O%06R%1C%09%5BI%1B%0A%15%19%2C%0D%08O%0AS%5BDK%23g ')); |
Спасибо, зашел на этом сайте в http://learn.javascript.ru/play и там попробовал выводить r после каждого шага цикла, получил "//Your key is JavaSd@w^_g{Kpj3a11:2(Y{bt3k$4
r&3nn.$~dajni#f6>j?L4" откуда квакозябры могли взяться? |
Из arguments.callee.toString().
arguments.callee - это ссылка на саму функцию, т.е. в данном случае arguments.callee === decrypt. toString - приведение к строке. Т.е. key = 'function decrypt(s) { var r = ""; var key = arguments.callee.toString(); var l = key.length; s = unescape(s); for(i=0;i<s.length;i++) r+=String.fromCharCode(s.charCodeAt(i) ^ key.charCodeAt(i % l)); return r; }' Это очень ненадёжный ключ, зависящий от кучи факторов, как то браузер, кодировка, переносы строки итд. |
Часовой пояс GMT +3, время: 13:19. |