UTILS.
100% trong trình duyệt
🕵️

Công cụ giấu tin trong ảnh (Steganography)

Giấu văn bản bí mật bên trong một ảnh bằng giấu tin LSB, hoặc lộ ra một thông điệp ẩn. Chạy 100% trong trình duyệt của bạn, không có gì được tải lên.

Thả hoặc chọn một ảnh để giấu văn bản vào

Về công cụ này

Công cụ này giấu một thông điệp văn bản bí mật bên trong một ảnh thông thường và sau đó lấy nó ra lại, dùng giấu tin theo bit có ý nghĩa nhỏ nhất (LSB). Mọi thứ diễn ra cục bộ trong trình duyệt của bạn trên một canvas HTML: bức ảnh và thông điệp của bạn không bao giờ rời khỏi thiết bị và không có gì được tải lên bất kỳ máy chủ nào.

Giấu tin LSB hoạt động bằng cách ghi đè lên bit có ý nghĩa nhỏ nhất của mỗi kênh màu. Ảnh được vẽ lên một canvas và các điểm ảnh thô của nó được đọc; thông điệp được chuyển thành các byte UTF-8 và, từng bit một, những bit đó thay thế bit thấp nhất của các kênh đỏ, lục và lam của các điểm ảnh liên tiếp (kênh alpha/độ trong suốt được bỏ qua để tránh dấu vết thị giác). Việc chỉ thay đổi bit thấp nhất làm dịch mỗi kênh nhiều nhất 1 trên 255, nên kết quả nhìn giống hệt bằng mắt thường. Một tiêu đề độ dài 32-bit big-endian được ghi trước để bộ giải mã biết chính xác có bao nhiêu byte thông điệp theo sau. Mỗi điểm ảnh mang 3 bit, nên một ảnh chứa được khoảng floor(rộng x cao x 3 / 8) byte, trừ đi 4 byte tiêu đề.

Để giấu một thông điệp, chọn "Giấu thông điệp", chọn một ảnh, gõ văn bản của bạn và bấm Mã hóa & Tải xuống để lưu một PNG. Để khôi phục nó, chuyển sang "Lộ thông điệp" và mở một PNG stego; văn bản ẩn được giải mã tự động. Đầu ra phải là PNG vì nó không mất dữ liệu — một JPEG nén lại các điểm ảnh và sẽ xóa sạch các bit có ý nghĩa nhỏ nhất mong manh, phá hủy thông điệp.

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

Điều này có bảo mật hoặc được mã hóa không?
Không. Giấu tin LSB là sự mù mờ, không phải mã hóa — nó che giấu việc một thông điệp tồn tại nhưng không bảo vệ nội dung. Bất cứ ai nghi ngờ một ảnh stego và dùng cùng phương pháp đều có thể đọc nó. Để bảo mật thực sự, hãy mã hóa văn bản của bạn trước (ví dụ bằng một công cụ AES) rồi mới giấu bản mã.
Tại sao nó xuất PNG chứ không phải JPEG?
Thông điệp nằm trong các bit có ý nghĩa nhỏ nhất của các điểm ảnh, vốn chỉ tồn tại khi không mất dữ liệu. PNG giữ nguyên chính xác từng bit. JPEG mất dữ liệu và nén lại ảnh, thay đổi những bit thấp đó và phá hủy dữ liệu ẩn, nên công cụ này luôn lưu PNG.
Tôi có thể giấu bao nhiêu văn bản trong một ảnh?
Khoảng floor(rộng x cao x 3 / 8) byte, trừ 4 byte dành cho tiêu đề độ dài. Một ảnh 1000 x 1000 chứa được khoảng 375.000 byte. Công cụ hiển thị dung lượng chính xác khi bạn tải một ảnh và cảnh báo bạn nếu thông điệp quá lớn.
Nó có hoạt động với biểu tượng cảm xúc và các ngôn ngữ khác không?
Có. Thông điệp được mã hóa dưới dạng UTF-8, nên biểu tượng cảm xúc, dấu và các chữ viết không phải Latin đều được bảo toàn chính xác. Lưu ý rằng các ký tự nhiều byte dùng nhiều dung lượng ảnh hơn ASCII thuần.

Công cụ khác