2018-08-22 20:13:46 2887次浏览 3条回答 0 悬赏 10 金钱

因为不想把数据直接json出来。想加密后再打印出来。

下面是来自阿里云
https://yq.aliyun.com/ziliao/8538#
的资料,可是我引入了,
打印明文是just a test
加密后的是U1s1TFN3IQ0reTZbBgJlCA==
js解密就一个w出来,为啥

     <script src=\"js/md5.js\"></script>
<script src=\"js/base64.js\"></script>
<script>
 
    function strencode(string) {
        key =md5('just a test');
        string = Base64.decode(string); 
        len = key.length;   
        code = '';   
        for (i = 0; i < string.length; i++) {   
            k = i % len;   
            code += String.fromCharCode(string.charCodeAt(i) ^ key.charCodeAt(k));   
        }   
        return Base64.decode(code);   
    }
    alert(strencode('U1s1TFN3IQ0reTZbBgJlCA=='));   
</script> 

最佳答案

  • 花椒 发布于 2018-08-23 10:32 举报

    你都已经md5了,怎么解密回来。。。

    9 条回复
    回复于 2018-08-23 11:06 回复

    看错了,问题是base64.js有问题,把这个js换成这个就可以了http://plugins.jquery.com/base64/

    然后js前台解密部分改成:
    function strencode(string) {

        key =md5('just a test');
        string = $.base64.atob(string);
        len = key.length;
        code = '';
        for (i = 0; i < string.length; i++) {
            k = i % len;
            code += String.fromCharCode(string.charCodeAt(i) ^ key.charCodeAt(k));
        }
        return $.base64.atob(code);
    }
    

    亲测有效~

    回复于 2018-08-24 03:51 回复

    谢谢大佬,可中文怎么是这乱码的,似乎是base64要转码还是啥,新手莫笑哈

    用的是火狐开发者版本浏览器

    回复于 2018-08-24 03:53 回复

    1.PNG
    2.PNG

    回复于 2018-08-24 05:33 回复

    折腾半天终于用上非对称加密了。可是php非对称加密的,密文太长了,我又郁闷了。
    没法这样短一点吗
    `U1s1TFN3IQ0reTZbBgJlCA==`

    回复于 2018-08-24 05:47 回复

    还有内个,js解密的私钥一般都放哪里比较稳妥,放哪里感觉都不安全,一下就看到了

    回复于 2018-08-24 08:54 回复


    $.base64.utf8encode = true;
    $.base64.utf8decode= true;

    回复于 2018-08-24 08:58 回复


    这个感觉确实是防君子不防小人啊……

    回复于 2018-08-24 10:18 回复
    • -!那要ras有何用,直接用个base64骗骗人好了,哎
    回复于 2018-08-24 13:58 回复


    一般来说前台加密,后台解密比较适合,因为前台用的公钥,后台解密~而私钥只有后台有

您需要登录后才可以回答。登录 | 立即注册
蛋蛋的蛋
主管

蛋蛋的蛋

注册时间:2018-04-02
最后登录:2024-03-11
在线时长:34小时29分
  • 粉丝4
  • 金钱64
  • 威望20
  • 积分604

热门问题