Как обращаться с безопасными файлами cookie с помощью веб-сканера [закрыто]

Я обнаружил, что вышеупомянутое решение не будет работать, если вам нужно иметь дело с такими управляющими символами, как 02 (STX) или 03 (ETX), что-либо под 10 будет считано как одна цифра и сбросить все после. Я столкнулся с этой проблемой, пытаясь разобрать последовательную связь. Итак, я сначала взял полученную шестнадцатеричную строку и поместил ее в объект-буфер, а затем преобразовал шестнадцатеричную строку в массив таких строк:

buf = Buffer.from(data, 'hex');
l = Buffer.byteLength(buf,'hex');
for (i=0; i<l; i++){
char = buf.toString('hex', i, i+1);
msgArray.push(char);

Затем .join it

message = msgArray.join('');

, тогда я создал функцию hexToAscii, как и в ответе @Delan Azabani выше ...

function hexToAscii(str){
    hexString = str;
    strOut = '';
        for (x = 0; x < hexString.length; x += 2) {
            strOut += String.fromCharCode(parseInt(hexString.substr(x, 2), 16));
        }
    return strOut;    
}

, затем вызвал функцию hexToAscii в 'message'

message = hexToAscii(message);

Этот подход также позволил мне выполнить итерацию по массиву и нарезать фрагменты в разные части передачи с помощью управляющих символов, чтобы я мог заниматься только той частью данных, которую я хотел. Надеюсь, это поможет кому-то еще!

-10
задан T.Rob 13 November 2011 в 16:38
поделиться