Home

Awesome

hidden_watermark

Crates.io Build Status Docs.rs License GitHub stars Forks Rust Crates.io Downloads GitHub Discussions

Hidden Watermark in Rust

Put message(blind watermark) into a text. so that the message is invisible, and the changes of the text are not perceptible.

stars fork

How to Use

Cargo.toml

[dependencies]
hidden_watermark = "*"

Text Hidden Watermark

You can try it on website: https://www.guofei.site/a/app/hidden_watermark/text_hidden_watermark.html

Can be used in

use hidden_watermark::TextBlindWM;
use std::fs;
#[test]
fn example_text_hidden_watermark() {
    let pwd = "This is password".as_bytes();
    let wm = "This is a hidden message".as_bytes();
    let ori_filename = "./files/file.txt";
    let file_with_wm = "./files/outputs/file_with_wm.txt";


    let text_blind_watermark = TextBlindWM::new(pwd);

    let text = fs::read_to_string(ori_filename).unwrap();

    // embed
    let text_with_wm = text_blind_watermark.add_wm_rnd(text.as_str(), wm);
    // write into file
    fs::write(file_with_wm, text_with_wm).unwrap();
    println!("text with watermark saved in file <{}>", file_with_wm);

    // read text and extract the watermark
    let text_with_wm = fs::read_to_string(file_with_wm).unwrap();

    // extract
    let wm_extract = text_blind_watermark.extract(text_with_wm.as_str());

    println!("watermark extracted:{}", String::from_utf8_lossy(wm_extract.as_slice()))
}

It does not display well in IDE. Use other text editor or text viewer.

Related Project

HideInfo:https://github.com/guofei9987/HideInfo

算法说明
migrate tank使图片在不同的背景下显示不同的图片
hide as image把数据以图片形式存放
hide in image把数据藏在一个图片中
image seed把图片和文件黏在一起,并存为图片
EXIF把一段信息放到图片的EXIF中
hide as music把数据以音频的形式存放
hide in music把数据隐藏在一个音频中
hide as text把数据以文本文件的形式存放
hide in text把数据隐藏在一段文本中

Python version: https://github.com/guofei9987/text_blind_watermark