对发送到websocket的数据进行编码

2024-06-25 23:09:57 发布

您现在位置:Python中文网/ 问答频道 /正文

在尝试连接到websocket服务器并向其发送信息之后,我遇到了编码问题。 我有一个字符串和这个字符串的编码(十六进制)版本。假设我的字符串是'getpremium'如何将该字符串转换为这些十六进制值的数组?在

[0x81, 0x8c, 0x86, 0x78, 0xe3, 0xc6, 0xe1, 0x1d,
0x97, 0xb6, 0xf4, 0x1d, 0x8e, 0xaf, 0xf3, 0x15,
0xee, 0xcc]

我可以将这些值解码回原始字符串,但我不知道它们是如何编码成这些十六进制值的。基本上,我如何对字符串“getpremium”进行编码以获得这些编码值,然后将它们发送到这个websocket服务器。任何使用python或节点.js适用。在

javascript解码方法:

^{pr2}$

Tags: 方法字符串版本服务器编码节点js数组
1条回答
网友
1楼 · 发布于 2024-06-25 23:09:57

试试这个:

import os

def encode(rawBytes):
    data = [ord(i) for i in rawBytes]
    length = len(rawBytes) + 128
    Bytes = [0x81, length]
    index = 2
    masks = os.urandom(4)
    for i in range(len(masks)):
           Bytes.insert(i + index, masks[i])        
    for i in range(len(data)):
        data[i] ^= masks[i % 4]
        Bytes.insert(i + index + 4, data[i])
    return [hex(i) for i in Bytes]

相关问题 更多 >