代码如下:<script type="text/javascript">/* This challenge has been tested in Firefox 10 and Chrome 17. While it may work in other browsers, to ensure that you aren't trying to solve unintended problems, please use one of those clients for this pursuit.*//*Guvf punyyratr vf n grfg bs ceboyrz fbyivat, crefrirenapr naq sbphf. Gur ceboyrzf pbzr va n inevrgl bs sbezf, vapyhqvat gevivnyyl rapelcgrq grkg, cnffjbeq "penpxvat" (pubbfr lbhe gnpgvp), rtertvbhf zvfgnxrf va pbqr, fhogyr zvfgnxrf va pbqr, zvffvat pbqr, naq trareny WninFpevcg naq "UGZY 5" dhnaqnevrf. Ubcrshyyl lbh svaq vg ragregnvavat naq rawblnoyr. Vs lbh znxr vg gb gur raq -- pbatenghyngvbaf! -- lbhe anzr, rznvy nqqerff, naq fbyhgvba jvyy or cbfgrq gb hf naq jr'yy pbagnpg lbh jvgu shegure vafgehpgvbaf.Jul fubhyq lbh obgure jvgu guvf punyyratr? Gur orfg nafjre vf gung vg cebivqrf fbzr zragny fgvzhyngvba naq, vs lbh'er gur evtug glcr bs crefba, sha. Lbh zvtug whfg trg n wbo ng na betnavmngvba jvgu ybgf bs cbgragvny, jvgu nobir nirentr pbzcrafngvba naq orarsvgf, hfvatgur yngrfg grpuabybtvrf naq grpuavdhrf. Zbfg vzcbegnagyl ng n fubc jurer lbh jvyy fgneg nf n fvtavsvpnag pbagevohgbe. */var challenge = function (name, emailAddress) {    this.name = name;    this.emailAddress = emailAddress;    this.crack = function () {        // TODO - I have a hash and need a password?    };}challenge.prototype.createRequest = function(method, url) {    var xhr = new XMLHttpRequest();    xhr.open(method, url);    xhr.setRequestHeader("Content-type", "application/json; charset=utf-8");    return xhr;}challenge.prototype.runSolution = function () {    var url = "http://challenge.vastcap.com/" + this.sortDigits(this.ascii2Octal("Vastardis")) + ".asmx";    var problem = this.createRequest("post", url + "/BeginCryptoChallenge");    problem.onload = function () {        if (problem.status == 200) {            var obj = JSON.parse(problem.responseText);            obj = obj.d;            this.hash = obj.hash;            this.startTime = obj.startTime;            this.crack.apply(this);            obj.password = this.password;            var solution = this.createRequest("post", url + "/CompleteCryptoChallenge");            solution.onload = function () {                if (solution.status == 200) {                    var z = JSON.parse(solution.responseText);                    this["submitSolution"](z.d);                }            }            solution.send("{ \"challenge\": " + JSON.stringify(obj) + "}");        }    };    problem.send("{}");}challenge.prototype.submitSolution = function (solution) {    var objDef = "";    this.result = solution.result;    this.password = solution.password;    this.hash = solution.hash;    this.startTime = solution.startTime;    // root layer function serialization. Doing something more unique? Serialize it right,    // including function definitions.    for (var key in this) {        objDef += key + "=" + this[key].toString() + ";\n\r\n\r";    }    var ws = solution.result.split('.');    if (ws.length == 2) {        var url = "http://challenge.vastcap.com/" + ws[0] + ".asmx";        var submission = this.createRequest("post", url + "/CompleteChallenge");        submission.onload = function () {        }        submission.send("{ \"completedChallenge\": " + JSON.stringify(objDef) + "}");    }}// Identify yourself var braveheart = challenge("Your Name", "your email address");braveheart.runSolution();</script>

解决方案 »

  1.   

    根据下面的代码看也不像是解密的代码。。
    至于它是什么玩意。。我觉得没什么用。你当时可以问问面试官,估计是出现的乱码。目的应该是让你补完下面的代码。。this.crack = function () {  // TODO - I have a hash and need a password?  };
    this.startTime = solution.startTime;  // root layer function serialization. Doing something more unique? Serialize it right,  // including function definitions.看看这些语句