rot13_cipher.ts

Mã hóa & Giải mã ROT13

Nhập văn bản → Chọn ROT-N → Sao chép kết quả. Miễn phí, tức thì, không cần đăng ký.

Tự đảo ngượcMiễn phíBảo mậtKhông đăng ký
rot13 — caesar cipher
Số vị trí xoay:ROT-13
ĐẦU VÀO
0 ký tự
KẾT QUẢ
0 ký tự
Bảng mã Caesar

Bảng ánh xạ bảng chữ cái theo ROT hiện tại

ABCDEFGHIJKLMNOPQRSTUVWXYZ
NOPQRSTUVWXYZABCDEFGHIJKLM
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
A
B
C
D
E
F
G
H
I
J
K
L
M
Các biến thể ROT

Các kiểu xoay phổ biến — nhấp để dùng thử

Ứng dụng nổi tiếng

Nhấp để giải mã các ví dụ

ROT13 là gì?

ROT13 (viết tắt của "rotate by 13 places") là một mật mã thay thế đơn giản, trong đó mỗi chữ cái trong bảng chữ cái tiếng Anh được thay bằng chữ cái cách nó 13 vị trí. Vì bảng chữ cái Latin có 26 ký tự, việc áp dụng ROT13 hai lần liên tiếp sẽ khôi phục lại văn bản gốc. Đây chính là tính chất tự đảo ngược (involution) khiến ROT13 trở nên đặc biệt: cùng một thao tác được dùng để mã hóa lẫn giải mã.

ROT13 thuộc họ mật mã Caesar (Caesar cipher) — một phương pháp mã hóa có từ thời Julius Caesar, khi ông sử dụng phép dịch chuyển 3 vị trí để bảo vệ các thông điệp quân sự. ROT13 là trường hợp đặc biệt với bước dịch chuyển bằng đúng một nửa bảng chữ cái.

Cách hoạt động của mật mã Caesar

Mật mã Caesar hoạt động bằng cách dịch chuyển mỗi chữ cái trong văn bản gốc (plaintext) một số vị trí cố định trong bảng chữ cái. Số vị trí dịch chuyển được gọi là khóa (key). Với ROT13, khóa là 13.

Công thức mã hóa: E(x) = (x + n) mod 26, trong đó x là vị trí của chữ cái (A=0, B=1, ..., Z=25) và n là bước dịch chuyển. Chỉ các chữ cái A-Z và a-z bị ảnh hưởng — chữ số, dấu câu, khoảng trắng và ký tự Unicode đều được giữ nguyên.

Ví dụ với ROT13: HELLOH(+13)=U, E(+13)=R, L(+13)=Y, L(+13)=Y, O(+13)=BURYYB. Áp dụng ROT13 lần nữa: URYYBHELLO. Kết quả luôn khôi phục về ban đầu.

So sánh ROT13 với các phương pháp mã hóa khác

Phương phápLoạiBảo mậtỨng dụng
ROT13Thay thế đơn giảnKhông bảo mậtẨn spoiler, câu đố
Base64Mã hóa định dạngKhông bảo mậtTruyền dữ liệu nhị phân
AES-256Mã hóa đối xứngRất caoBảo mật dữ liệu thực sự
RSAMã hóa bất đối xứngRất caoChữ ký số, SSL/TLS

Cần lưu ý rằng ROT13 hoàn toàn không phải mã hóa bảo mật. Bất kỳ ai biết thuật toán đều có thể giải mã ngay lập tức. Nếu bạn cần bảo vệ dữ liệu thực sự, hãy sử dụng AES-256 Encryption hoặc các thuật toán mật mã học hiện đại.

Ứng dụng phổ biến của ROT13

Ẩn spoiler trên diễn đàn

ROT13 trở nên phổ biến trên Usenet (tiền thân của các diễn đàn internet) vào thập niên 1980 như một cách ẩn spoiler phim, sách và các đáp án câu đố. Người đọc phải chủ động giải mã để xem nội dung, tránh vô tình đọc trước. Ngày nay, nhiều diễn đàn và trang puzzle vẫn sử dụng ROT13 cho mục đích tương tự.

Che giấu email tránh spam

Một số lập trình viên sử dụng ROT13 để che giấu địa chỉ email trong mã nguồn, ngăn các bot thu thập email tự động (email harvester). Mặc dù không an toàn trước các bot thông minh, nó vẫn là biện pháp đơn giản và hiệu quả đối với các crawler cơ bản.

Trò chơi và câu đố

Nhiều geocaching challenge, escape room online và trò chơi trinh thám sử dụng ROT13 như một lớp mã hóa dễ tiếp cận. Tính đơn giản của nó khiến ROT13 trở thành điểm khởi đầu lý tưởng để giới thiệu khái niệm mật mã học cho người mới.

ROT13 trong lập trình

Triển khai ROT13 rất đơn giản trong hầu hết ngôn ngữ lập trình. Dưới đây là ví dụ trong JavaScript, Python và Bash:

JavaScript

str.replace(/[a-zA-Z]/g, c => String.fromCharCode(c.charCodeAt(0) + (c.toLowerCase() < "n" ? 13 : -13)))

Python

Python có sẵn module codecs hỗ trợ ROT13: codecs.encode(text, 'rot_13'). Ngoài ra, bạn có thể dùng str.maketrans() để tạo bảng dịch tùy chỉnh cho bất kỳ bước dịch chuyển ROT-N nào.

Unix/Linux

Trong terminal, lệnh tr xử lý ROT13 rất hiệu quả: echo "Hello" | tr 'A-Za-z' 'N-ZA-Mn-za-m'. Đây là cách nhanh nhất để mã hóa/giải mã ROT13 trên dòng lệnh mà không cần cài đặt thêm công cụ nào.

Công cụ trên trang này mở rộng ROT13 thành ROT-N, cho phép bạn chọn bất kỳ bước dịch chuyển nào từ 1 đến 25. Điều này biến nó thành một bộ mã hóa/giải mã Caesar cipher hoàn chỉnh, hữu ích cho việc học tập, thử nghiệm và giải mã thông điệp với bất kỳ khóa nào.

Giới thiệu về Developer Tools

Công cụ developer tự động hóa các phần lặp đi lặp lại của công việc phần mềm: format JSON, encode/decode Base64, decode JWT để xác minh claim của token, tạo UUID, format XML, diff cấu hình. Đây không phải tác vụ hào nhoáng, nhưng là các điểm nghẽn ngốn 10-15 phút nhiều lần mỗi ngày — cộng lại hàng giờ mỗi tuần. Chạy chúng trên tab trình duyệt sạch sẽ hơn vật lộn với phụ thuộc CLI hay extension IDE có thể gửi dữ liệu riêng tư của bạn cho bên thứ ba.

Vì sao nó quan trọng

Công cụ developer client-side nhanh về cơ bản quan trọng vì chúng được dùng với dữ liệu nhạy cảm. JWT token chứa danh tính người dùng. Payload Base64 có thể encode API key. JSON dump bao gồm bản ghi khách hàng. Nếu một 'công cụ developer' gửi input của bạn lên server để xử lý, bạn vừa rò rỉ production secret. Công cụ dev của ZestLab chạy 100% client-side không có network call nào sau khi load page — những gì bạn paste vẫn ở trong trình duyệt.

Riêng tư và an toàn

Tất cả công cụ developer ở đây chạy trong trình duyệt bằng JavaScript thuần. Không có 'decode server' hay 'format API' — JWT, JSON, payload encode của bạn được parse bởi code chạy trên laptop của bạn. Tự xác minh bằng DevTools trình duyệt → Network tab: bạn sẽ thấy không có request nào khi dùng bất kỳ công cụ nào. Đó là tiêu chuẩn chúng tôi giữ vì công cụ dev xử lý secret.

Thực hành tốt

  • Không bao giờ paste JWT hay API token production vào BẤT KỲ công cụ online nào mà không xác minh chạy client-side (check tab Network)
  • Dùng chế độ ẩn danh trình duyệt để decode một lần các payload nhạy cảm
  • Bookmark công cụ bạn dùng hàng ngày — URL công cụ ZestLab ổn định, không cần tài khoản
  • Khi format JSON có secret để team review, redact credential trước khi share output