我知道ENCODED是字节数组,但是什么是MASK,他的价值是什么?
var DECODED = "";
for (var i = 0; i < ENCODED.length; i++) {
DECODED[i] = ENCODED[i] ^ MASK[i % 4];
}
我在网上找到了这个例子,问题是如何才能知道MASK值是什么?
是否有任何提示或链接?但在谷歌的例子中我只找到这种类型的代码,但我希望明确看到MASK值,请帮助
pstream = new BufferedWriter(new OutputStreamWriter(csocket.getOutputStream(), StandardCharsets.UTF_8));
char[] buff = new char[4];
pstream.read(buf);
//now buf have that masks?
答案 0 :(得分:0)
正好在该代码段之上,它说:
如果设置了MASK位(对于客户端到服务器的消息,它应该是),读取接下来的4个八位位组(32位);这是屏蔽键。
您可以在data frame format description中找到MASK位。
因此伪代码可以扩展到
var LEN = decodeLength(buffer); var MASK = buffer.read(4); var ENCODED = buffer.read(LEN); var DECODED = new Buffer(LEN); for (var i = 0; i < ENCODED.length; i++) { DECODED[i] = ENCODED[i] ^ MASK[i % 4]; }