| <!DOCTYPE html> |
| <html lang="vi"> |
| <head> |
| <meta charset="UTF-8"> |
| <title>Kỹ thuật giấu tin trong ảnh (Steganography) - Trực tuyến</title> |
| <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.1/css/bootstrap.min.css"> |
| </head> |
| <body> |
| <div class="container"> |
| <div class="page-header"> |
| <h1>Công cụ giấu tin trong ảnh</h1> |
| </div> |
|
|
| <ul class="nav nav-tabs" id="tabs" data-tabs="tabs"> |
| <li role="presentation" class="active"> |
| <a href="#encode" data-toggle="tab">Giấu tin</a> |
| </li> |
| <li role="presentation"> |
| <a href="#decode" data-toggle="tab">Giải mã</a> |
| </li> |
| </ul> |
|
|
| <div id="my-tab-content" class="tab-content"> |
| |
| <div class="tab-pane active" id="encode"> |
| <div> |
| <h2>Giấu tin vào ảnh</h2> |
| <p class="alert alert-info"> |
| Để giấu một thông điệp vào ảnh, bạn chọn ảnh muốn sử dụng, nhập nội dung tin nhắn và bấm nút <strong>Giấu tin</strong>.<br/> |
| Sau khi xong, bạn hãy lưu lại ảnh cuối cùng, ảnh này đã chứa thông điệp ẩn của bạn.<br/> |
| Lưu ý: ảnh càng lớn càng giấu được nhiều thông tin hơn. Nếu bạn nhập quá nhiều chữ cho một ảnh nhỏ, hệ thống sẽ báo.<br/><br/> |
| Lưu ý: Bạn chỉ được phép dùng CVNSS4.0 mới hiệu quả, xem thêm https://chuvnsongsong.com Ảnh và nội dung bạn giấu sẽ <strong>không bao giờ</strong> gửi lên mạng, tất cả thao tác đều xử lý trên trình duyệt của bạn. |
| </p> |
| <form class="form"> |
| <div class="form-group"> |
| <input class="form-control" type="file" name="baseFile" onchange="previewEncodeImage()"> |
| </div> |
|
|
| <div class="form-group"> |
| <textarea class="form-control message" rows="3" placeholder="Nhập nội dung tin nhắn cần giấu ở đây"></textarea> |
| </div> |
|
|
| <div class="form-group"> |
| <button class="encode btn btn-default pull-right" onclick="encodeMessage()">Giấu tin</button> |
| </div> |
| </form> |
| <div class="clearfix"></div> |
| </div> |
|
|
| <div class="error" style="display: none;"></div> |
| <div class="binary" style="display: none;"> |
| <h3>Dạng nhị phân của tin nhắn</h3> |
| <textarea class="form-control message" style="word-wrap:break-word;"></textarea> |
| </div> |
| <div class="images" style="display: none;"> |
| <div class="original" style="display: none;"> |
| <h3>Ảnh gốc</h3> |
| <canvas></canvas> |
| </div> |
| <div class="nulled" style="display: none;"> |
| <h3>Ảnh chuẩn hóa</h3> |
| <canvas></canvas> |
| </div> |
| <div class="message" style="display: none;"> |
| <h3>Ảnh đã giấu tin (chuột phải <span class="glyphicon glyphicon-arrow-right"></span> lưu ảnh)</h3> |
| <canvas></canvas> |
| </div> |
| </div> |
| </div> |
|
|
| |
| <div class="tab-pane" id="decode"> |
| <div> |
| <h2>Giải mã tin trong ảnh</h2> |
| <p class="alert alert-info"> |
| Để lấy nội dung đã được giấu, bạn chỉ cần chọn ảnh và bấm <strong>Giải mã</strong>.<br/><br/> |
| Lưu ý: Ảnh và nội dung sẽ <strong>không bao giờ</strong> gửi lên mạng, mọi thao tác đều thực hiện trên máy bạn. |
| </p> |
| <form class="form"> |
| <div class="form-group"> |
| <input class="form-control" type="file" name="decodeFile" onchange="previewDecodeImage()"> |
| </div> |
| <div class="form-group"> |
| <button class="decode btn btn-default pull-right" onclick="decodeMessage()">Giải mã</button> |
| </div> |
| </form> |
| <div class="clearfix"></div> |
| </div> |
| <div class="binary-decode" style="display: none;"> |
| <h3>Nội dung đã giấu</h3> |
| <textarea class="form-control message" style="word-wrap:break-word;"></textarea> |
| </div> |
| <div class="decode" style="display: none;"> |
| <h3>Ảnh đầu vào</h3> |
| <canvas></canvas> |
| </div> |
| </div> |
| </div> |
|
|
| <footer style="text-align: center; margin-top: 20px; margin-bottom: 10px;"> |
| © 2025 bởi <a href="mailto:chuvnsongsong@gmail.com">Long Ngo</a> | 1 sản phẩm của CVNSS4.0 |
| </footer> |
| </div> |
|
|
| <style> |
| canvas { |
| max-width: 100%; |
| } |
| </style> |
|
|
| <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> |
| <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.1/js/bootstrap.min.js"></script> |
| <script type="text/JavaScript" src="script.js"></script> |
| </body> |
| </html> |
|
|