我知道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?
就在代码片段的上方,它说:
如果设置了MASK位(对于客户端到服务器的消息,应该设置MASK位),则读取接下来的4个八位字节(32位);这是掩蔽键。
您可以在数据帧格式描述中找到MASK位。
因此伪码可以扩展到
var LEN=解码长度(缓冲区);var MASK=buffer.read(4);var ENCODED=缓冲区读取(LEN);var DECODED=新缓冲区(LEN);for(var i=0;i<ENCODED.length;i++){解码[i]=编码[i]^掩码[i%4];}