gpt4 book ai didi

java - WebSocket key1+key2+8_byte_data != 16 字节(128 位)?

转载 作者:行者123 更新时间:2023-12-02 08:27:32 26 4
gpt4 key购买 nike

我正在尝试用Java构建一个websocket服务器,但是我遇到了困难...websocket的规范说你必须连接key1和key2中的数字,然后将额外的8字节数据连接到' ...形成一个 128 位字符串,其 MD5 和为然后由服务器用来证明它读取了握手。

示例 key1 是 155712099示例 key2 为 173347027示例8字节的额外数据是Tm[K T2u

'155712099173347027Tm[K T2u' 是 26 个字节,而不是想象中的 16 个字节(128 位)!我在这里缺少什么?

我可以“获取”有关 websockets 的所有内容,但这里只有一小部分。

最佳答案

您使用 key1 和 key2 作为数字字符串,而不是 32 位数字。

例如,155712099作为十六进制32位数字是:0x63、0xfa、0x47、0x09(0x947fa63)。那就是你想要的。您需要将 key1 和 key2 字符串转换为无符号整数,然后将这 4 个字节打包到目标字节数组的位置 0(对于 key1)和位置 4(对于 key2)。

将 155712099 作为数字字符串将得到一个 9 字节字符串,其十六进制值:0x31、0x35、0x35、0x37、0x31、0x32、0x30、0x39、0x39。另一方面,您确实希望将额外的字节直接打包到从位置 8 开始的目标字节数组中。这应该会给您一个 16 字节长的目标字节数组。

请注意,握手有意将不同的数据元素操纵为不同的数据类型,以尝试阻止针对 WebSockets 服务器的不同类型的攻击。<​​/p>

关于java - WebSocket key1+key2+8_byte_data != 16 字节(128 位)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4201128/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com