Base64 sang JSON: Cách giải mã dữ liệu cookie và phiên đăng nhập an toàn

Digital Account Market

· Cập nhật lần cuối:

Bạn đang có một chuỗi dài toàn chữ và số khó đọc, được cho là chứa dữ liệu cookie hoặc phiên đăng nhập, và bạn cần chuyển base64 sang json để thực sự xem được nội dung. Có thể người bán, một tiện ích mở rộng trình duyệt hoặc một bảng điều khiển nhập dữ liệu đã đưa chuỗi này cho bạn, và bạn muốn xem các trường bên trong trước khi đưa nó vào công cụ khác.

Hướng dẫn này chỉ cách nhận biết một chuỗi Base64, giải mã nó thành JSON được định dạng gọn gàng bằng công cụ miễn phí, sửa những lỗi thường gặp và mã hóa JSON ngược lại thành Base64 khi một bảng điều khiển yêu cầu định dạng đó. Hướng dẫn cũng nói về cách giữ kín dữ liệu đã giải mã, vì giá trị cookie và token rất nhạy cảm.

Base64 là gì và vì sao cookie, token thường được gói trong đó

Base64 viết mọi loại dữ liệu, kể cả văn bản có dấu ngoặc kép, dấu ngoặc nhọn và chữ có dấu tiếng Việt, chỉ bằng 64 ký tự an toàn: A đến Z, a đến z, 0 đến 9, cùng hai ký hiệu + và /. Những hệ thống không xử lý được dấu câu thô hay ký tự xuống dòng vẫn có thể truyền dữ liệu, vì Base64 biến mọi thứ thành văn bản thuần, dễ sao chép.

Vì thế trong thực tế bạn hay gặp chuỗi cookie base64. Một công cụ xuất dữ liệu phiên dưới dạng JSON có thể gói nó bằng Base64 để dữ liệu đi qua ô nhập văn bản, tham số URL hay tin nhắn chat mà không bị hỏng, và bảng điều khiển nhập dữ liệu cũng có thể mong đợi đúng kiểu gói đó khi nhận vào.

Điều quan trọng: Base64 chỉ là một cách biểu diễn dữ liệu (encoding), không phải mã hóa bảo mật (encryption). Không có mật khẩu, không có khóa, và bất kỳ ai cầm chuỗi này đều có thể chuyển nó về văn bản gốc, nên hãy coi chuỗi đó chính là dữ liệu.

Cách nhận biết một chuỗi Base64

Trước khi giải mã, hãy kiểm tra xem chuỗi có thật sự là Base64 không. Ba bước kiểm tra nhanh thường là đủ.

Bộ ký tự

Chuỗi Base64 chuẩn chỉ chứa chữ cái, chữ số, + và /. Nếu bạn thấy dấu hai chấm, khoảng trắng giữa các từ hoặc ký tự @, nhiều khả năng đó là thứ khác. Các dòng giao hàng như username:password:email:email_password:auth_token là văn bản phân tách bằng dấu hai chấm, không phải Base64, và không trình giải mã nào hiểu được chúng.

Phần đệm (padding)

Base64 hoạt động theo nhóm bốn ký tự. Khi dữ liệu không lấp đầy nhóm cuối, một hoặc hai dấu bằng được thêm vào làm phần đệm. Chuỗi kết thúc bằng = hoặc == là gợi ý rất mạnh, nhưng chuỗi không có dấu bằng vẫn hợp lệ khi độ dài vừa khớp, và một số công cụ cố ý bỏ phần đệm.

Phần mở đầu dễ nhận ra

Một đối tượng JSON bắt đầu bằng dấu ngoặc nhọn và dấu ngoặc kép, và cặp ký tự đó luôn được mã hóa thành cùng một phần mở đầu. Chuỗi bắt đầu bằng eyJ gần như chắc chắn là một đối tượng JSON, W3si thường là danh sách các đối tượng, còn WyJ là danh sách các giá trị văn bản. Nếu chuỗi của bạn mở đầu như vậy, giải mã xong sẽ ra JSON.

Chưa chắc? Hãy dán một đoạn mẫu vào công cụ nhận diện định dạng. Công cụ kiểm tra bảng ký tự, phần đệm và độ dài, rồi cho bạn biết văn bản trông giống Base64, JSON hay thứ gì khác.

Base64 sang JSON: giải mã bằng công cụ miễn phí

Công cụ Base64 sang JSON làm toàn bộ việc ngay trong trình duyệt của bạn, không tải gì lên, nên chuỗi luôn nằm trên thiết bị của bạn.

  • Dán chuỗi Base64 vào ô nhập. Hãy bấm nút ví dụ trước nếu bạn muốn xem kết quả đúng trông như thế nào.
  • Kết quả hiện ra ngay. Nếu văn bản sau khi giải mã là JSON hợp lệ, nó được hiển thị gọn gàng với thụt lề hai khoảng trắng, nên các trường lồng nhau rất dễ quét mắt.
  • Đọc cấu trúc, rồi dùng nút sao chép để mang JSON đi.

Công cụ loại bỏ khoảng trắng và ký tự xuống dòng trước khi giải mã, và đọc các byte theo UTF-8, nên chữ có dấu và chữ không phải Latin hiển thị đúng thay vì thành ký hiệu lộn xộn. Để thử, hãy dán eyJ1c2VyIjoiaGVzYXAxIiwidG9rZW4iOiJhYmMxMjMifQ== và bạn sẽ nhận được một đối tượng có trường user và trường token.

Nếu văn bản đã giải mã đọc được nhưng không phải JSON, công cụ hiển thị nó dưới dạng văn bản thường thay vì bỏ kết quả. Điều này hay gặp với một token đơn lẻ, và đó vẫn là một lần giải mã thành công.

Sửa lỗi giải mã: padding, ngắt dòng và biến thể URL-safe

Khi giải mã thất bại, nguyên nhân hầu như luôn là một trong các trường hợp sau.

Thiếu padding

Chuỗi bị cắt hoặc bị xóa mất các dấu bằng. So sánh eyJpZCI6MX0= với eyJpZCI6MTIzfQ==: chuỗi đầu cần một dấu bằng, chuỗi sau cần hai. Hãy thêm = cho đến khi độ dài chia hết cho bốn. Ngoại lệ là chuỗi chia cho bốn dư một: không phần đệm nào cứu được, vì ký tự đã mất khi sao chép, và bạn cần một bản sao mới từ nguồn gốc.

Ngắt dòng và khoảng trắng thừa

Ứng dụng email, ứng dụng chat và tệp văn bản thường ngắt chuỗi dài thành nhiều dòng. Những chỗ ngắt đó không thuộc về dữ liệu. Công cụ sẽ tự bỏ chúng cho bạn, nhưng các trình giải mã khác có thể không làm vậy.

Biến thể URL-safe

Chuỗi tạo cho địa chỉ web đổi + thành - và / thành _ để không bị hỏng trong đường link, và trình giải mã chuẩn sẽ từ chối hai ký tự này. Hãy đổi mọi - thành + và mọi _ thành /, thêm lại phần đệm rồi giải mã lại.

Dòng tài khoản bị dán nhầm

Nếu bạn dán các dòng dữ liệu giao hàng phân tách bằng dấu hai chấm, công cụ sẽ báo rằng nó trông giống danh sách tài khoản. Loại văn bản đó cần công cụ tách cột chứ không cần trình giải mã. Hãy dùng tách theo ký tự phân cách để lấy ra các trường bạn cần.

Mã hóa JSON sang Base64: đổi ngược cho những công cụ yêu cầu định dạng này

Một số bảng điều khiển và công cụ nhập dữ liệu muốn dữ liệu phiên ở dạng Base64 thay vì JSON thô. Công cụ JSON sang Base64 xử lý chiều ngược lại. Dán JSON của bạn, chọn đầu ra gọn trên một dòng hoặc đầu ra thụt lề dễ đọc, rồi sao chép kết quả. Chế độ gọn là lựa chọn mặc định tốt hơn cho đa số lần nhập vì cho ra chuỗi ngắn nhất.

Công cụ kiểm tra JSON của bạn trước, nên thiếu dấu phẩy hay chưa đóng ngoặc nhọn đều bị phát hiện trước khi bạn mã hóa một nội dung hỏng. Việc mã hóa dùng UTF-8 nên quy trình đi và về đáng tin cậy: giải mã một chuỗi, sửa một trường, mã hóa lại, và mọi trường khác trở về đúng như cũ.

Nếu cookie của bạn nằm trong tệp văn bản định dạng Netscape, hãy chuyển đổi bằng công cụ Netscape cookies và xem hướng dẫn của chúng tôi về cách chuyển cookie Netscape sang JSON. Nếu bạn làm việc với auth token, hãy xem cách đăng nhập Twitter bằng auth token.

Giữ kín dữ liệu đã giải mã

Dữ liệu cookie và phiên sau khi giải mã có thể chứa token hoạt động như chìa khóa của tài khoản, nên có vài thói quen đáng giữ.

  • Làm việc cục bộ. Công cụ chạy trong trình duyệt và không tải dữ liệu nhập lên sẽ tốt hơn một trang web ngẫu nhiên gửi văn bản của bạn đến máy chủ mà bạn không kiểm tra được.
  • Đừng dán giá trị đã giải mã vào chat công khai, ticket hay ảnh chụp màn hình. Khi nhờ hỗ trợ, chỉ chia sẻ tên các trường.
  • Giữ nguyên chuỗi gốc, giải mã một bản sao, và xóa tệp làm việc khi xong.

Với những chuyển đổi đơn giản, lặp lại như thế này, một công cụ chuyển đổi chạy cục bộ thường là đủ. Bài viết của chúng tôi về khi nào công cụ chuyển đổi định dạng cục bộ là đủ giải thích cách quyết định. Khi sẵn sàng chọn tài khoản, hãy xem danh mục tài khoản lâu năm và dùng trang công cụ miễn phí cho mọi việc từ lúc nhận hàng đến lúc đăng nhập.

Câu hỏi thường gặp

Làm sao biết một chuỗi là Base64?

Kiểm tra ba điều: chỉ dùng chữ cái, chữ số, + và /; độ dài khớp với nhóm bốn ký tự kèm phần đệm = tùy chọn; và thường bắt đầu bằng eyJ khi chứa một đối tượng JSON. Công cụ nhận diện định dạng tự động hóa việc kiểm tra này.

Tại sao Base64 của tôi giải mã ra ký tự không đọc được?

Hoặc dữ liệu vốn không phải văn bản, chẳng hạn hình ảnh hay nội dung nén, hoặc nó dùng bộ ký tự khác. Bạn cũng nhận được ký tự rác khi chuỗi là biến thể URL-safe mà chưa được chuyển đổi trước.

Dấu bằng ở cuối có nghĩa là gì?

Đó là phần đệm. Base64 mã hóa theo khối bốn ký tự, và một hoặc hai dấu bằng lấp đầy khối cuối khi dữ liệu thiếu. Bản thân chúng không mang thông tin.

Base64 có phải là một dạng mã hóa bảo mật không?

Không. Base64 chỉ thay đổi cách viết dữ liệu, và ai cũng có thể đảo ngược mà không cần khóa. Hãy bảo vệ chuỗi Base64 giống như bạn bảo vệ dữ liệu đọc được.

Làm sao chuyển JSON ngược lại thành Base64?

Dán JSON vào công cụ JSON sang Base64, chọn đầu ra gọn hoặc thụt lề, rồi sao chép kết quả. Công cụ sẽ đánh dấu JSON không hợp lệ trước khi mã hóa.

Công cụ

Danh mục phổ biến

Hỗ trợKênh