加密JS Word.length无效

时间:2018-07-16 20:44:26

标签: javascript jquery socket.io cryptojs

我正在使用Socket.io和CryptoJS,当我尝试解密正在发送的消息时,在控制台中一直遇到此错误。 enter image description here

我以为是因为我两次发出相同的套接字,但是我不确定是因为。

客户端代码

       $messageForm.submit(function (e) {
        e.preventDefault();
        socket.emit('send message', $messageBox.val(), function (data) {
            $chat.append('<span class = "error"' + data + "</span><br/>");

        });
        $messageBox.val('');

    });

    socket.on('new message', function (data) {
        $chat.append('<span class= "msg"<b>' + data.nick + ': </b>' + data.msg +
            "<span/><br/>");

    });


    socket.on('whisper', function (data) {
        $chat.append('<span class = "whisper"<b>' + data.nick + ': </b>' + data.msg +
            "</span><br/>");

    });

    // socket.on('decryption', function (data) {
    //     $chat.append('<span class = "decryptionValue" <b>' + data.decryptValue +
    //         '</b></span><br/>');


    // });

    $decryptFrom.submit(function (e) {
        e.preventDefault();
        socket.emit('send message', function(data){
            $messageRevealed.append('<span class = "decryptionValue" <b>' +
                data.decryptValue +
                '</b></span><br/>');


        });
        // socket.on('decryption', function (data) {
        // })

    });

服务器端代码

    socket.on('send message', function (data, callback) {
    var myPassword = '11111';
    var encryption = CryptoJS.AES.encrypt(data, myPassword);
    var decryption = CryptoJS.AES.decrypt(encryption, myPassword);
    var msg = encryption.toString().trim();
    if (msg.substr(0, 3) === '/w ') {
        msg = msg.substr(3);
        var ind = msg.indexOf(' ');
        if (ind !== -1) {
            var name = msg.substr(0, ind);
            var msg = msg.substr(ind + 1);
            if (name in users) {
                users[name].emit('whisper', {
                    msg: msg,
                    nick: socket.nickname
                });
            } else {
                callback('Error! Enter a valid user!');
            }
        } else {
            callback("Error! Enter a pm");
        }
    } else {
        io.sockets.emit('new message', {
            msg: msg,
            nick: socket.nickname
        });
    }

    io.sockets.emit('decryption', {
        decryptValue: decryption.toString(CryptoJS.enc.Utf8)
    });

});

我一直认为无法通过eventListner正确读取消息,因为每当我尝试在没有事件侦听器的情况下进行操作时,每次通过发送消息进行解密都会始终有效。任何帮助将不胜感激。

0 个答案:

没有答案