Awesome
hidden_watermark
- Documentation: https://docs.rs/hidden_watermark
- Source code: https://github.com/guofei9987/hidden_watermark
Hidden Watermark in Rust
- Hidden Watermark in Text
- Hidden Watermark in Image (png/jpg/...)
Put message(blind watermark) into a text. so that the message is invisible, and the changes of the text are not perceptible.
- Video demo:https://www.bilibili.com/video/BV1m3411s7kT
- Online demo(from old version, for demo only): https://www.guofei.site/pictures_for_blog/app/text_watermark/v1.html
- Python version: https://github.com/guofei9987/text_blind_watermark
- Source code: https://github.com/guofei9987/hidden_watermark_rs
- crates.io: https://crates.io/crates/hidden_watermark_rs
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
- dingding
- zhihu.com
- ...
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