ImageSteg · Giấu dữ liệu trong ảnh hoặc tệp âm thanh

Bản chuyển steghide 0.5.1 sang trình duyệt, hỗ trợ cả hai phương pháp: điểm ảnh/LSB cho BMP và PNG, hệ số DCT cho JPEG — cùng vật chứa âm thanh PCM WAV và MP3. Giấu tệp hoặc tin nhắn rồi khôi phục bằng cụm mật khẩu.

100% cục bộ

Tệp và bí mật của bạn luôn nằm trên thiết bị này. Giải mã định dạng, nhúng, mã hóa bảo mật và trích xuất đều chạy trong tab trình duyệt này. Không dữ liệu nào được tải lên máy chủ, nên không có gì để rò rỉ từ máy chủ.

1 · Ảnh hoặc âm thanh làm vật chứa

Thả ảnh hoặc tệp âm thanh JPEG, PNG, WebP, GIF, BMP, PCM WAV hoặc MP3 · giải mã cục bộ, không tải lên

Vật chứa lớn hơn chứa được nhiều hơn: ảnh khoảng một byte trên tám pixel, PCM WAV một byte trên mười sáu mẫu, còn MP3 dùng phần chưa sử dụng trong các khung âm thanh.

2 · Dữ liệu cần giấu

Chưa chọn tệp

3 · Cụm mật khẩu & tùy chọn

Ba bước đơn giản

Cách giấu tệp trong ảnh hoặc tệp âm thanh

Không cài đặt, không tải lên: chọn ảnh, WAV hoặc MP3, thêm bí mật và lưu kết quả.

1

Chọn ảnh hoặc âm thanh làm vật chứa

Chọn, thả hoặc dán ảnh, WAV hay MP3 để chứa dữ liệu. Tệp lớn chứa được nhiều hơn; ảnh nhiều chi tiết hoặc nhạc giúp che thay đổi tốt nhất.

2

Thêm bí mật và cụm mật khẩu

Đính kèm tệp bất kỳ hoặc nhập tin nhắn, rồi chọn cụm mật khẩu. Cụm mật khẩu quyết định vị trí phân tán dữ liệu và có thể dùng để mã hóa dữ liệu.

3

Tải xuống và chia sẻ

Lưu kết quả dạng BMP để tương thích steghide hoặc PNG để tệp nhỏ hơn. Bất kỳ ai có ảnh và cụm mật khẩu đều có thể khôi phục dữ liệu.

Thuật toán steghide cùng vật chứa âm thanh, trong trình duyệt

Ghép cặp đồ thị trên điểm ảnh, hệ số DCT và mẫu âm thanh

ImageSteg là bản chuyển steghide 0.5.1 sang TypeScript, hỗ trợ cả hai nhánh: điểm ảnh/LSB cho BMP, PNG và DCT cho JPEG. Ngoài ra, công cụ chứa dữ liệu trong âm thanh PCM WAV theo cùng cách và trong phần cuối chưa dùng của khung MP3. Không phương pháp nào đơn thuần đi tuần tự qua tệp.

Nhúng dựa trên đồ thị

Các mẫu được nhóm thành đỉnh và phép ghép cặp trọng số nhỏ nhất quyết định phần cần thay đổi, nên chỉ khoảng một mẫu bị tác động cho mỗi giá trị ẩn.

Giấu tin JPEG DCT thực thụ

Codec entropy JPEG tích hợp đọc hệ số DCT đã lượng tử hóa, giấu dữ liệu trong tính chẵn lẻ rồi mã hóa lại — đúng tại vị trí trong quy trình mà libjpeg của steghide dừng. Cả tệp baseline và progressive đều hoạt động.

Phân tán theo cụm mật khẩu

Hoán vị lấy MD5 làm hạt giống phân tán dữ liệu khắp ảnh, nên dữ liệu ẩn không nằm theo thứ tự dễ dự đoán.

Nén và tổng kiểm tra

zlib giảm dung lượng dữ liệu trước khi nhúng, còn tổng kiểm tra CRC32 tùy chọn cho biết ngay kết quả trích xuất có đáng tin cậy không.

Mã hóa AES-256 tùy chọn

Rijndael ở chế độ CBC với cách dẫn xuất khóa giống libmcrypt giữ bí mật dữ liệu ngay cả khi có người nghi ngờ ảnh.

Những điều cần biết

Dung lượng, tốc độ và khả năng tương thích

Giới hạn thực tế khi giấu dữ liệu trong điểm ảnh.

BMP · PNGnhánh điểm ảnh / LSB
JPEGnhánh hệ số DCT
0.2 %tỷ lệ mẫu thường bị thay đổi
0 dữ liệu tải lênmọi thứ nằm trong trình duyệt

Khả năng tương thích: bố cục bit, hoán vị mẫu và mã hóa Rijndael/CBC tuân theo steghide 0.5.1, nên đầu ra BMP và JPEG có thể đọc bằng steghide extract -sf image.bmp -p passphrase hoặc -sf image.jpg, và tệp do công cụ dòng lệnh steghide tạo có thể đọc ở đây. Định dạng đầu ra luôn khớp vật chứa: vật chứa JPEG tạo JPEG vì dữ liệu nằm trong hệ số mà chỉ JPEG chứa được. PNG được cung cấp cùng BMP cho vật chứa điểm ảnh; steghide CLI không đọc PNG.

Chi tiết nhánh JPEG

Hỗ trợ JPEG của steghide gọi hàm libjpeg jpeg_read_coefficients(), dừng quy trình giải mã ngay sau giải mã Huffman — trước khử lượng tử hóa và IDCT. Phần còn lại là các hệ số DCT thô đã lượng tử hóa. Trình duyệt không cung cấp API cho chúng, nên trang có codec entropy JPEG riêng thay vì dùng bộ giải mã gốc. Codec hỗ trợ cả tệp baseline lẫn progressive, kể cả các lượt quét tinh chỉnh xấp xỉ liên tiếp.

Áp dụng cùng thuật toán cho PNG

Bộ nhúng không xử lý định dạng tệp — nó chỉ làm việc trên mảng điểm ảnh đã giải mã, nên phương pháp BMP/LSB của steghide áp dụng nguyên vẹn cho PNG. Bốn chi tiết quan trọng trong thực tế:

Hỏi đáp

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

ImageSteg có miễn phí không?

Có. Giấu và khôi phục dữ liệu miễn phí, không đăng ký, không hình mờ và không có giới hạn kích thước tệp áp đặt.

Ảnh hoặc tệp bí mật của tôi có được tải lên không?

Không. Giải mã định dạng, nhúng, nén và mã hóa bảo mật chạy cục bộ trong trình duyệt bằng JavaScript và WebCrypto. Không có gì được gửi đến máy chủ 73hi.

Hỗ trợ những định dạng ảnh nào?

Mọi ảnh trình duyệt giải mã được đều có thể làm vật chứa điểm ảnh; JPEG baseline hoặc progressive dùng nhánh DCT của steghide. Định dạng đầu ra theo vật chứa: JPEG vào, JPEG ra; vật chứa điểm ảnh cho BMP cùng bản PNG. Công cụ dòng lệnh steghide đọc được BMP và JPEG nhưng không đọc PNG.

Chế độ JPEG giấu dữ liệu thế nào?

Trong các hệ số DCT đã lượng tử hóa, giống hệt công cụ dòng lệnh steghide. Trang có codec entropy JPEG giải mã lượt quét đến bước hệ số, sửa tính chẵn lẻ rồi mã hóa lại.

Tôi có thể dùng JPEG progressive không?

Có. Tệp progressive được giải mã qua toàn bộ chuỗi quét — chọn phổ và tinh chỉnh xấp xỉ liên tiếp — rồi ghi lại theo cùng cách, nên kết quả vẫn là JPEG progressive mang các hệ số gốc.

Còn JPEG mã hóa số học thì sao?

Hỗ trợ đọc. Tệp dùng mã hóa QM (số học nhị phân) thay cho Huffman — SOF9 cho tuần tự, SOF10 cho progressive — được giải mã bằng cùng bộ giải mã số học mà libjpeg dùng, nên các hệ số giống hệt. Kết quả được ghi bằng mã hóa Huffman, như cách steghide thực hiện.

Tôi có thể giấu bao nhiêu dữ liệu?

Khoảng một byte dữ liệu trên tám pixel, trừ chỗ cho phần đầu, tên tệp được lưu và phần phụ trội của mã hóa tùy chọn. Công cụ hiển thị dung lượng dùng được sau khi bạn chọn ảnh.

Công cụ dòng lệnh steghide có đọc được kết quả không?

Có, nếu bạn tải BMP xuống. Bố cục bit, hoán vị mẫu theo cụm mật khẩu và mã hóa Rijndael/CBC tuân theo steghide 0.5.1.

Tại sao trích xuất thất bại sau khi chỉnh sửa ảnh?

Dữ liệu được lưu trong từng giá trị điểm ảnh. Nén lại, đổi kích thước, lọc hoặc chuyển sang định dạng mất dữ liệu như JPEG sẽ phá hủy nó. Hãy giữ BMP gốc hoặc bản PNG không mất dữ liệu.

Tôi có thể giấu hai bí mật trong cùng một ảnh không?

Không thể bằng cách nhúng hai lần vào một tệp. Lượt thứ hai chọn vị trí ngẫu nhiên riêng khắp vật chứa và ghi đè một phần dữ liệu đầu tiên. Vì dữ liệu được nén trước khi mã hóa, chỉ vài bit bị đổi cũng khiến toàn bộ tin nhắn không đọc được — bạn mất hoàn toàn, không chỉ một phần. Công cụ dòng lệnh steghide gốc cũng như vậy. Dùng lại cùng cụm mật khẩu cũng không tốt hơn: nó ghi lại cùng vị trí từ đầu nên chỉ tin nhắn mới nhất còn tồn tại. Để tạo nhiều lớp thực sự, hãy lồng tệp: giấu bí mật đầu trong ảnh nhỏ, tải kết quả xuống, rồi giấu toàn bộ tệp đó trong ảnh lớn hơn với cụm mật khẩu thứ hai. Mỗi lớp giữ nguyên từng byte vì được mang dưới dạng dữ liệu được bảo vệ thay vì các điểm ảnh bị sửa.

Mở ảnh đã có dữ liệu ẩn có làm mất dữ liệu không?

Không. Mở tệp chỉ đọc các byte: vật chứa JPEG đi thẳng đến hệ số DCT đã lượng tử hóa, không biến đổi ngược hoặc lượng tử hóa lại; vật chứa điểm ảnh được giải mã không mất dữ liệu, nên dữ liệu ẩn giữ nguyên. JPEG có thể được lưu với dung lượng hơi khác vì mã hóa entropy được ghi lại, nhưng điều đó không ảnh hưởng đến dữ liệu. Bạn có thể mở tệp do người khác chuẩn bị và khôi phục nội dung an toàn.

ImageSteg có giúp bảo vệ bản quyền không?

Có. Nhúng thông báo bản quyền hoặc bằng chứng sở hữu trực tiếp vào ảnh. Dữ liệu nằm trong điểm ảnh hoặc hệ số JPEG và vô hình khi xem thông thường, nên bạn có thể chia sẻ ảnh công khai mà không ai nhận thấy. Nếu ai đó dùng lại trái phép, dấu ẩn vẫn nằm trong tệp — và khi bạn đăng cùng ảnh lên nền tảng bên thứ ba để ghi nhận vi phạm, bản đăng đó cũng mang bằng chứng, giúp bạn có căn cứ vững chắc cho yêu cầu gỡ bỏ hoặc khiếu nại.

Tôi có thể giấu lời nhắn mà mình ngại nói trực tiếp không?

Hoàn toàn có thể. Giấu lời nhắn như "Tôi yêu bạn" — hoặc điều khó nói trực tiếp — trong một bức ảnh đời thường và đặt cụm mật khẩu là ngày sinh người nhận. Gửi ảnh và nhờ họ mở bằng ImageSteg (hoặc truy cập 73hi.com/image-steg.html) để mở khóa. Chỉ người biết cụm mật khẩu mới đọc được lời nhắn, giúp bạn bày tỏ mà không ngượng ngùng nói thành lời.