Desenmascarado de datos WebSocket
Desenmascara hasta 1048576 bytes WebSocket con una clave de cuatro bytes.
def unmask_payload(data, mask):
if type(data) is not bytes or len(data) > 1048576:
raise ValueError("mask.payload")
if type(mask) is not bytes or len(mask) != 4:
raise ValueError("mask.key")
return bytes(value ^ mask[index % 4]
for index, value in enumerate(data))Revisa antes de aplicar
Compara el comportamiento real con el resultado esperado. Si una prueba falla, investiga la causa antes de hacer más cambios.
Modelos
Configura un endpoint compatible con OpenAI o Anthropic usando la URL base y, si hace falta, una clave API. Prueba la conexión. Un servidor local debe estar en ejecución; las herramientas remotas pueden enviar datos por separado.
Proyecto
Comprueba entrada vacía y posiciones repetidas, rechazando otros tipos o longitudes y verificando la doble aplicación.
def unmask_payload(data, mask):
if type(data) is not bytes or len(data) > 1048576:
raise ValueError("mask.payload")
if type(mask) is not bytes or len(mask) != 4:
raise ValueError("mask.key")
return bytes(value ^ mask[index % 4]
for index, value in enumerate(data))Mantén las transformaciones de bytes dentro de un límite de protocolo claro
SocketBrume es un espacio de programación con IA para Windows dirigido a desarrolladores de rutinas de bajo nivel de las que dependen otras capas de la aplicación. Aporta los archivos del proyecto y describe los bytes exactos que recibe y devuelve una función. Pide al asistente conectado que inspeccione la validación, la transformación y el código llamante antes de cambiar la implementación. Ese contexto ayuda a distinguir una modificación local útil de un supuesto que corresponde a otra parte del protocolo.
Por ejemplo, una tarea sobre unmask_payload.py podría examinar cómo se aplica una máscara de cuatro bytes a una secuencia de bytes acotada. Pide casos conocidos de entrada y salida y una explicación de qué comprobaciones corresponden a la función auxiliar. Revisa el cambio propuesto sin asumir que la función también valida tramas, gestiona una conexión o interpreta un mensaje completo. Explicitar ese límite facilita verificar el cambio.
Ejecuta las comprobaciones del proyecto con datos vacíos, cargas normales y máscaras inválidas, e inspecciona después cómo llegan los fallos al código circundante. Si una etapa posterior rechaza la salida, incorpora esas pruebas a la conversación. SocketBrume admite endpoints de modelos compatibles con OpenAI o de Anthropic, con credenciales cuando sean necesarias. Un modelo de IA sin restricciones solo es seleccionable donde se ofrezca; siguen aplicándose las reglas del proveedor, la compatibilidad con herramientas y la capacidad de contexto. Tus ejemplos a nivel de bytes siguen siendo la referencia para decidir si el código es correcto.
Preguntas sobre un cambio de procesamiento de bytes
¿Qué debe contener un ejemplo útil a nivel de bytes?
Aporta los bytes exactos de entrada, la máscara o los parámetros y los bytes de salida esperados. Indica por separado las restricciones de longitud y tipo. Así puedes comparar una propuesta mecánicamente, en lugar de aceptar una descripción que solo parezca coherente con el protocolo.
¿Una función de carga útil valida el mensaje completo?
No lo deduzcas de una sola transformación. Inspecciona el analizador circundante e indica qué capa comprueba el enmarcado, las longitudes y las reglas del mensaje. Mantén el cambio solicitado dentro de su responsabilidad salvo que planifiques deliberadamente uno más amplio.
¿Cómo deben probarse las cargas vacías?
Especifica si se acepta una secuencia de bytes vacía y qué salida produce. Comprueba ese comportamiento por separado de los parámetros inválidos, para evitar que una entrada vacía válida omita accidentalmente una comprobación obligatoria de máscara o tipo.
¿Puedo verificar la operación sin una conexión activa?
Los casos conocidos de entrada y salida pueden comprobar la transformación de forma independiente. Después prueba la integración en el entorno de tu proyecto según sea necesario. Aislar la función ayuda a identificar si un fallo procede del tratamiento de bytes o del estado del protocolo circundante.
SocketBrume · Actualizado 2026-10-25