5个版本

0.1.5 2022年8月11日
0.1.4 2022年3月24日
0.1.3 2022年3月24日
0.1.1 2022年3月24日
0.1.0 2022年3月24日

#651 in WebAssembly

Download history • Rust 包仓库 71/week @ 2024-03-11 • Rust 包仓库 62/week @ 2024-03-18 • Rust 包仓库 16/week @ 2024-03-25 • Rust 包仓库 26/week @ 2024-04-01 • Rust 包仓库 37/week @ 2024-04-08 • Rust 包仓库 11/week @ 2024-04-15 • Rust 包仓库 80/week @ 2024-04-22 • Rust 包仓库 123/week @ 2024-04-29 • Rust 包仓库 32/week @ 2024-05-06 • Rust 包仓库 25/week @ 2024-05-13 • Rust 包仓库 61/week @ 2024-05-20 • Rust 包仓库 123/week @ 2024-05-27 • Rust 包仓库 95/week @ 2024-06-03 • Rust 包仓库 91/week @ 2024-06-10 • Rust 包仓库 124/week @ 2024-06-17 • Rust 包仓库 141/week @ 2024-06-24 • Rust 包仓库

每月480次下载
用于 onetime-cli

MIT 许可证

11KB
218

md5-rs

一个简单的MD5实现,侧重于缓冲读取,且完全no_std

由于MD5存在漏洞,因此不应在任何安全关键型软件中使用。

动机

我在做一个Web项目,意识到我没有办法在不将整个大文件读入内存的情况下获取其校验和(这在某些情况下会导致页面崩溃!)。Web Crypto API没有MD5实现,所以我决定不重新实现SHA算法,而是实现MD5。

由于主要关注WebAssembly,因此API可能略有不同。

使用方法

由于它是完全的no_std,因此这个库的使用可能不像其他MD5库那样直接。

use md5_rs::Context;

// get the hash
let mut ctx = Context::new();
ctx.read(b"Hello, world");
let digest = ctx.finish();

// get digest as string
let hash = digest.iter().map(|x| format!("{:02x}", x)).collect::<String>();
println!("{hash}"); // "bc6e6f16b8a077ef5fbc8d59d0b931b9"

无运行时依赖