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
每月480次下载
用于 onetime-cli
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"