Chia một liên kết thành các thành phần: giao thức, máy chủ, cổng, đường dẫn, truy vấn và đoạn, giống như cách trình duyệt thực hiện.
Công cụ mã hóa / giải mã URL
Công cụ này được hiển thị bằng tiếng Anh; trang này giải thích về công cụ đó bằng ngôn ngữ của bạn.
Sử dụng Công cụ mã hóa / giải mã URL
Chức năng của nó là gì?
Giải mã văn bản được mã hóa theo định dạng phần trăm, chẳng hạn như đích chuyển hướng được ẩn trong một liên kết lừa đảo, hoặc mã hóa văn bản để sử dụng trong một URL bằng các hàm `encodeURIComponent` hoặc `encodeURI`.
Ứng dụng này hoạt động hoàn toàn trên trình duyệt của bạn: mọi thông tin bạn nhập vào đều không được tải lên.
Cách sử dụng Công cụ mã hóa / giải mã URL
- Dán văn bản. Dán chuỗi đã được mã hóa vào đây, ví dụ như giá trị của tham số url= hoặc redirect=, hoặc văn bản thuần túy mà bạn muốn mã hóa.
- Chọn hành động. Nhấn “decode” để chuyển các chuỗi %XX trở lại thành ký tự, nhấn “encodeURIComponent” để mã hóa một giá trị duy nhất, hoặc nhấn “encodeURI” để mã hóa toàn bộ địa chỉ.
- Đọc kết quả. Kết quả sẽ hiển thị trong ô bên dưới các nút. Thông báo lỗi có nghĩa là dữ liệu nhập vào không hợp lệ đối với thao tác đó.
- Nếu cần, hãy giải mã lại. Mỗi lần nhấn nút “giải mã” sẽ loại bỏ một lớp. Nếu bạn vẫn thấy %25, %3A hoặc %2F, hãy dán kết quả vừa nhận được trở lại vào ô và thực hiện giải mã lại.
- Sao chép hoặc chia sẻ lại. Chức năng “Sao chép” sẽ lấy kết quả. Chức năng “Gửi đến…” sẽ chuyển kết quả đó đến Link Unwrapper, Multi-Layer Decoder, URL Defanger hoặc Homoglyph Checker.
Ví dụ
Địa chỉ đích chuyển hướng được mã hóa
https%3A%2F%2Flogin.example.com%2Fverify%3Fuser%3Dalice%40example.com%26step%3D2https://login.example.com/verify?user=alice@example.com&step=2Khi giải mã, ta được https://login.example.com/verify?user=alice@example.com&step=2. Các liên kết lừa đảo thường chứa địa chỉ email của người nhận theo cách này để trang đăng nhập giả mạo có thể tự động điền thông tin đó vào.
Nó kiểm tra những gì
| Tín hiệu | Ý nghĩa của điều đó là gì |
|---|---|
| Kết quả giải mã | Mỗi chuỗi %XX sẽ được chuyển thành ký tự mà nó đại diện, được đọc theo mã UTF-8. Hãy tìm một địa chỉ đầy đủ thứ hai, một địa chỉ email hoặc một đoạn mã bên trong đó. |
| Còn lại %25 trong kết quả | %25 là ký hiệu phần trăm đã được mã hóa. Nếu kết quả hiển thị vẫn chứa %3A, %2F hoặc %25, có thể nội dung gốc đã được mã hóa hai lần — đây là một cách phổ biến để che giấu địa chỉ đích khi xem lướt qua. |
| Lỗi | Quá trình giải mã sẽ thất bại khi gặp ký tự % đơn lẻ, ký tự % đi kèm với các ký tự không phải ký tự thập lục phân hoặc chuỗi UTF-8 không đầy đủ. Quá trình mã hóa chỉ thất bại khi gặp cặp ký tự thay thế bị lỗi, điều này hiếm khi xảy ra trong văn bản được dán vào. |
| Dấu cộng | decode giữ nguyên ký tự +. Trong các chuỗi truy vấn dạng biểu mẫu, + có nghĩa là khoảng trắng, vì vậy bạn hãy hiểu nó theo cách đó. |
| Kết quả của hàm encodeURIComponent | Mã hóa mọi ký tự ngoại trừ chữ cái, chữ số và một số ký hiệu như dấu gạch ngang, dấu gạch dưới, dấu chấm và dấu ngã; do đó, các ký tự : / ? & = # và @ đều được mã hóa. Sử dụng định dạng này cho giá trị của một tham số, chẳng hạn như địa chỉ email. |
| Kết quả của hàm encodeURI | Giữ lại các ký tự tạo nên cấu trúc của URL, chẳng hạn như: / ? & = # @, đồng thời mã hóa các khoảng trắng và các ký tự không thuộc bảng mã ASCII. |
| Các ký tự không thuộc bộ ký tự ASCII | Quá trình mã hóa ghi mỗi ký tự không phải ASCII dưới dạng từ hai đến bốn byte %XX. Một ký tự Cyrillic hoặc ký tự có dấu được ẩn theo cách này sẽ chỉ hiển thị sau khi giải mã. |
Các ví dụ khác
Địa chỉ đích chuyển hướng được mã hóa kép
https%253A%252F%252Fexample.net%252FloginChức năng giải mã trả về https%3A%2F%2Fexample.net%2Flogin. Khi giải mã lại kết quả đó, ta nhận được https://example.net/login.
Địa chỉ email là một giá trị tham số
alice@example.com&next=/accountHàm encodeURIComponent trả về alice%40example.com%26next%3D%2Faccount, do đó các ký tự & và / không còn có thể tách chuỗi truy vấn ra nữa.
Địa chỉ đầy đủ có chứa một khoảng trắng và một dấu trọng âm
https://example.org/search?q=café & teaHàm `encodeURI` trả về `https://example.org/search?q=caf%C3%A9%20&%20tea`. Dấu & vẫn được giữ nguyên, do đó từ “tea” sẽ tạo thành một tham số mới; thay vào đó, hãy sử dụng hàm `encodeURIComponent` cho giá trị này.
Câu hỏi thường gặp
Sự khác biệt giữa ba nút này là gì?
Hàm encodeURIComponent mã hóa tất cả các ký tự ngoại trừ chữ cái, chữ số và một số ký hiệu như - _ . ~, do đó nó phù hợp với giá trị tham số đơn lẻ. Hàm encodeURI giữ nguyên cấu trúc URL như : / ? & = #, còn hàm decode sẽ đảo ngược các chuỗi %XX.
Tại sao quá trình giải mã lại hiển thị thông báo “Lỗi” hoặc để lại ký tự %2F?
Một chuỗi bị lỗi, chẳng hạn như ký tự % đơn lẻ hoặc ký tự %E0%A4 bị cắt ngắn, sẽ khiến quá trình giải mã thất bại và công cụ hiển thị thông báo “Lỗi”. Công cụ này loại bỏ một lớp mã hóa trong mỗi lần chạy, do đó văn bản được mã hóa kép (%252F) cần phải chạy lại lần thứ hai hoặc sử dụng Bộ giải mã đa lớp, và ký tự + sẽ không được chuyển thành khoảng trắng.
Văn bản đó có được gửi đi đâu không?
Không. Quá trình mã hóa và giải mã trên trang này sử dụng các chức năng tích hợp sẵn của trình duyệt; không có dữ liệu nào được tải lên và không có liên kết nào được mở.
Tại sao một liên kết lừa đảo lại cần phải được mã hóa?
Việc mã hóa ẩn địa chỉ có thể đọc được bên trong một tham số, do đó khi xem trước, lọc hoặc lướt qua nhanh, người dùng chỉ thấy tên máy chủ đầu tiên. Các dịch vụ chuyển hướng và trình quét thư cũng mã hóa địa chỉ đích khi chúng bao bọc một liên kết.
Việc giải mã có làm thay đổi điều gì khác trong văn bản không?
Không. Chỉ có %XX chuỗi ký tự bị thay đổi. Các chữ cái và dấu + vẫn giữ nguyên, và các thực thể HTML không bị chuyển đổi.
Làm thế nào để giải mã một liên kết được bao bọc hoàn toàn, chẳng hạn như địa chỉ Safe Links?
Hãy sử dụng Link Unwrapper. Công cụ này sẽ tìm ra tham số chứa địa chỉ đích và giải mã nó từng lớp một. Công cụ này giải mã toàn bộ chuỗi cùng một lúc, do đó các phần thuộc về lớp bọc cũng sẽ bị giải mã theo.
Tại sao các chữ cái có dấu hoặc chữ cái Cyrillic lại biến thành nhiều nhóm %XX?
Các ký tự nằm ngoài bộ ký tự ASCII trước tiên được ghi dưới dạng các byte UTF-8, và mỗi byte được mã hóa riêng biệt. Ký tự é trở thành %C3%A9, còn ký tự Cyrillic а trở thành %D0%B0.