Mã hóa

ROT13 / Mật mã Caesar

Mật mã Caesar — dịch chuyển vòng các chữ cái trong bảng chữ cái Latin. ROT13 là trường hợp đặc biệt với độ dịch 13 (nút bên dưới), đối xứng: encode và decode cho cùng kết quả. Các ký tự khác (số, Kirin, dấu câu) không thay đổi.

A Caesar cipher cyclically shifts every letter of the alphabet by a fixed number of positions. ROT13 is the special case with a shift of 13, which makes the cipher self-inverting: apply ROT13 twice and you get the original text back.

How to use it

Common uses

Things to keep in mind

ROT13 is not encryption in any security sense — it's obfuscation, trivially broken by hand without any tool or key.

Since the Latin alphabet has 26 letters and 13 is exactly half of that, ROT13 is symmetric: the same operation encodes and decodes.

Bài viết về công cụ này: ROT13 và mật mã Caesar: thay thế ký tự đơn giản

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

ROT13 có thực sự an toàn không?

Không, hoàn toàn không. ROT13 là một mật mã xoay chữ cái đơn giản, không có tính bảo mật thực sự — ai cũng có thể giải mã ngay lập tức, thậm chí bằng mắt thường. Nó dùng để che giấu spoiler hay đáp án câu đố, không phải để bảo vệ dữ liệu nhạy cảm.

Vì sao mã hóa và giải mã cho cùng kết quả trong ROT13?

ROT13 dịch chữ cái đi 13 vị trí, đúng bằng một nửa bảng chữ cái 26 chữ, nên áp dụng hai lần sẽ trả về văn bản gốc — mã hóa và giải mã là cùng một phép toán.

Điều gì xảy ra với số, dấu câu hoặc chữ không phải Latin?

Chúng giữ nguyên không đổi. Chỉ chữ cái trong bảng chữ Latin bị dịch chuyển; giá trị dịch tùy chỉnh hoạt động tương tự cho bất kỳ biến thể nào của mật mã Caesar.

ROT47 khác ROT13 ở điểm nào?

ROT47 làm việc với phạm vi ASCII rộng hơn (33–126), nên dịch chuyển thêm cả chữ số, dấu câu và ký tự đặc biệt, chứ không chỉ chữ cái Latinh, trong khi vẫn giữ nguyên ý tưởng dịch chuyển tự nghịch đảo.

Có thể phá ROT13 mà không cần công cụ không?

Có, rất dễ — chỉ cần đọc văn bản trong khi dịch từng chữ cái đi 13 vị trí trong đầu, hoặc nhớ rằng A↔N, B↔O và cứ thế theo toàn bảng chữ cái. Đây không phải là bảo mật, chỉ là một cách làm rối nhẹ nhàng.

Bài viết: Mã hóa

Base64: mã hóa để làm gì và hoạt động ra sao

Base64 biến dữ liệu nhị phân thành văn bản ASCII như thế nào và khi nào thực sự cần đến nó.

Base32: khác gì với Base64 và khi nào tiện hơn

Bảng chữ cái Base32 không phân biệt hoa thường và các trường hợp nó tiện hơn Base64.

URL Encode/Decode: percent-encoding trong liên kết

Các ký tự đặc biệt trong địa chỉ và tham số trở thành chuỗi %XX như thế nào.

HTML Entities: cách hiển thị ký tự đặc biệt an toàn

Vì sao các ký tự < > & cần được escape và điều đó giúp tránh hỏng mã HTML thế nào.

JWT: cấu trúc token và "giải mã" JWT nghĩa là gì

Header, payload và signature của JWT, và vì sao giải mã không giống với xác minh chữ ký.

Unicode Escape: chuỗi \uXXXX nghĩa là gì

Chuỗi kiểu \u0041 trong JSON và chuỗi JS đến từ đâu và chúng nghĩa là gì.

Punycode: tên miền quốc tế hóa hoạt động thế nào trong DNS

Một tên miền chứa ký tự không phải Latinh trở thành dạng ASCII với tiền tố xn-- như thế nào.

Mã Morse: văn bản biến thành chấm và gạch ra sao

Nguyên lý mã hóa chữ cái thành chấm và gạch, và mã Morse còn được dùng ở đâu hiện nay.

Data URI: khi nào nên nhúng hình ảnh trực tiếp vào mã

Một Data URI nhúng nội dung tệp trực tiếp vào HTML hoặc CSS ra sao, và khi nào đáng làm vậy.

Gzip + Base64: nén dữ liệu để truyền dưới dạng văn bản

Vì sao dữ liệu nhị phân đã nén còn được mã hóa Base64 trước khi đưa vào trường văn bản.

XML Entities: escape ký tự trong tài liệu XML

Năm entity XML bắt buộc, thiếu chúng tài liệu sẽ hỏng khi phân tích cú pháp.