我现在是用escape和unescape处理的,但是英文和数字的都不会被处理,转成16进制的又会被人一眼看出来。
以前看到过个方法可以把任何字符串(包含中文)加密成 字母、数字、标点符号等文本类型的,现在找不到这个方法了,有人知道吗?

解决方案 »

  1.   

    借帖子问一个问题在js中加密解密有意义吗?在我看来,js代码都是可以查看的。那么看了算法 借来调用下不就还原了吗。
      

  2.   

    我也尝试过同样的问题,一直对JS代码不能完全加密而郁闷。我试过比较好的比如JSEncoder 还有一个javascript-obfuscator-setup.exe的付费软件,是我见过最好的加密。另外有好多页面上有联机加密解密的东东,随便拿一个来就可用。
    不过我发现那些东东都不是很好用,因为它们基本均是base64+字典+词分割替换而已,其中词分割采用正则表达式整的,因此对代码的编写有不同的要求。如果不满足要求的话,代码加密压缩出来后,不一定能够完全正常运行。所以,如果LZ只是为了挡住一部分人,不如自己写一个还好,把代码中所有不必要的空格、换行去掉,估计就能挡住大部分人。
      

  3.   


    !function() {
    var x = function(x) { return (x + x).slice(1,3); };
    window.encrypt = function (s) {
    return function() { return this; }()
    ['\x65\x6e\x63\x6f\x64\x65\x55\x52\x49\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74'](s).replace(/%(..)|([^%])/g, function($0, $1, $2) {
    return x($1 || ('0'+$2.charCodeAt(0).toString(16)).slice(-2));
    });
    };
    window.decrypt = function decrypt(s) {
    return function() { return this; }()
    ['\x64\x65\x63\x6f\x64\x65\x55\x52\x49\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74'](s.replace(/../g, function($0) {
    return '%'+x($0);
    }));
    };
    }();alert(encrypt('中文032309u'));
    alert(decrypt(encrypt('中文032309u')));挡一挡部分人
      

  4.   

    哇,还没发现,你竟然有两颗钻石,膜拜啊根据你的提示已经将加密功能添加入了FillForm,您的名单已被添加进贡献者列表。