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] JWT Encode — ký HS256

    JWT Encode (HS256)

    Tạo JWT từ payload và secret. Quy ước header cố định: {"alg":"HS256","typ":"JWT"}.

    Các bước:

    1. h = base64url(JSON header)
    2. p = base64url(payload JSON nguyên văn dòng input)
    3. signature = base64url( HMAC-SHA256(key=secret, data=h+'.'+p) ) (digest dạng nhị phân, không phải hex)
    4. In ra h.p.signature

    Cho payload JSON ở dòng 1, secret ở dòng 2.

    Ví dụ

    Input:
    {"sub":"1"}
    secret
    Output: <token 3 phần>
    
    • Định dạng đầu vào:

      Dòng 1: payload JSON (dùng nguyên văn). Dòng 2: secret.

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

      Header cố định như trên. Dùng require('crypto').

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

      JWT header.payload.signature (base64url).

    Ví dụ:

    Đầu vào:

    {"sub":"1"}
    secret

    Đầu ra:

    eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxIn0.8qZF8vbN3UpcanXFc-mPXJkOPN01-bRch8XX3rToP1U

    Giải thích:

    Ký HMAC-SHA256 trên h.p với secret, digest base64url.

    Đang tải editor...