Các lượt nộp
    Danh sách bài
    Trang chủ
    Báo lỗi

    solution

    Đề bài: [Lập trình Web & Backend] Handshake: tính Sec-WebSocket-Accept

    Handshake: tính Sec-WebSocket-Accept

    Trong WebSocket handshake, máy chủ tính header Sec-WebSocket-Accept từ Sec-WebSocket-Key do client gửi:

    accept = base64( SHA1( key + "258EAFA5-E914-47DA-95CA-C5AB0DC85B11" ) )
    

    Chuỗi GUID 258EAFA5-E914-47DA-95CA-C5AB0DC85B11 là hằng số chuẩn (RFC 6455). Cho Sec-WebSocket-Key, hãy in Sec-WebSocket-Accept.

    Gợi ý: dùng require('crypto') -> createHash('sha1').update(...).digest('base64').

    Ví dụ

    Input:
    dGhlIHNhbXBsZSBub25jZQ==
    
    Output:
    s3pPLMBiTxaQ9kYGzzhZRbK+xOo=
    
    • Định dạng đầu vào:

      Một dòng: chuỗi Sec-WebSocket-Key.

    • Ràng buộc đầu vào:

      Key là chuỗi base64 hợp lệ theo chuẩn.

    • Định dạng đầu ra:

      Một dòng: giá trị Sec-WebSocket-Accept (base64).

    Ví dụ:

    Đầu vào:

    dGhlIHNhbXBsZSBub25jZQ==
    

    Đầu ra:

    s3pPLMBiTxaQ9kYGzzhZRbK+xOo=

    Giải thích:

    Ví dụ chuẩn trong RFC 6455: key này cho accept s3pPLMBiTxaQ9kYGzzhZRbK+xOo=.

    Đang tải editor...