var s = escape(unescape(p).xor(k));
用这个计算你要的用户名和密码共同生成的key

var s = escape(unescape("admin1").xor("12345"));
然后把s填充到
var key = ["PV%5E%5D%5B", "PV%5E%5D%5B%04", "PV%5E%5D%5B%04"];
如上面就应该填充到key[0]中去!
就可以了

解决方案 »

  1.   

    <SCRIPT LANGUAGE="JavaScript">
    var key = ["PV%5E%5D%5B", "PV%5E%5D%5B%04", "PV%5E%5D%5B%04"];
    function String.prototype.xor(key)
    {  
      var result = "";  
      for (var i=0; i<this.length; i++)
        result += String.fromCharCode(this.charCodeAt(i)^key.charCodeAt(i%key.length));  
      return result;  
    }
    function mm()
    {
      with(document.form1)
      {
        var k = username.value.replace(/^\s+|\s+$/, '');
        var p = userpwd.value.replace(/^\s+|\s+$/, '');
        if(k == "" || p == "") return false;
        var s = escape(unescape(p).xor(k));
        for(var i=0; i<key.length; i++)
        {
          if (key[i] == s)
          {
            prompt("验证通过!",s);
    this.location="products.htm"
            return false;
          }
        }
      }
      prompt("错误用户或者密码!",s);
      this.location="error.htm"
      return false;
    }
    </SCRIPT>
    <form name=form1 onsubmit="return mm()">
    用户名:<input name=username><br>
    密  码:<input type=password name=userpwd><br>
    <input type=submit value="提交">
    <input type=reset  value="重写"></form>
    -
    输入你想要的用户名和密码,点击“提交”按钮,随后出现的对话框中选中的文字就是加密后的校验数据,把这个数据复制到var key = ["PV%5E%5D%5B", "PV%5E%5D%5B%04", "PV%5E%5D%5B%04"];这个数组中
    -
    比如我输入用户:bzscs,密码:good,得到的校验数据是:%05%15%1C%07,把它复制到key:var key = ["%05%15%1C%07","PV%5E%5D%5B", "PV%5E%5D%5B%04", "PV%5E%5D%5B%04"];
    -
    最后把两个prompt改为alert,OK!!
      

  2.   

    真是浪费表情,稍微懂一点就会直接看products.htm -_-