6个版本
0.1.5 | 2024年1月30日 |
---|---|
0.1.4 | 2024年1月29日 |
#97 in 视频
每月79次下载
在wm_add1中使用
12KB
174 行
text-blind-watermark
Rust中的文本盲水印
将信息(盲水印)放入文本中。这样信息就不可见,并且文本的变化不可察觉。
- 视频演示:https://www.bilibili.com/video/BV1m3411s7kT
- 在线演示(旧版本,仅用于演示):https://www.guofei.site/pictures_for_blog/app/text_watermark/v1.html
- Python版本:https://github.com/guofei9987/text_blind_watermark
- 源代码: https://github.com/guofei9987/text-blind-watermark
- crates.io: https://crates.io/crates/text-blind-watermark
可用范围
- 微信
- 钉钉
- 知乎
- ...
使用方法
Cargo.toml
[dependencies]
text-blind-watermark = "*"
嵌入和提取
use text_blind_watermark::TextBlindWM;
fn test2() {
let pwd = "这是一段密码. This is password";
let wm = "不可见的暗水印. This is watermark";
let text = "这是一段文本,之后这段文本将会被嵌入不可见盲水印";
let text_blind_watermark = TextBlindWM::new(pwd);
// embed
let text_with_wm = text_blind_watermark.embed(text, wm);
println!("text with watermark:{}", text_with_wm);
// extract
let wm_extract = text_blind_watermark.extract(text_with_wm.as_str());
println!("watermark extracted:{}", String::from_utf8_lossy(wm_extract.as_slice()))
}
嵌入和提取.txt文件
fn test3() {
let pwd = "这是一段密码. This is password";
let wm = "不可见的暗水印. This is watermark";
let ori_filename = "file.txt";
let file_with_wm = "file_with_wm.txt";
let text_blind_watermark = TextBlindWM::new(pwd);
let text = std::fs::read_to_string(ori_filename).unwrap();
// embed
let text_with_wm = text_blind_watermark.embed(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()))
}
在IDE中显示不佳。请使用其他文本编辑器或文本查看器。
相关项目
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 | 把数据隐藏在一段文本中 |
依赖
~315KB