| <!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>
|
|
|