Gat*_*ito 2 md5 cryptography rust
根据这个关于WWW身份验证的RFC(在HTTPTTP中使用)https://www.rfc-editor.org/rfc/rfc2617#page-7,
就本文档而言,128 位的 MD5 摘要
表示为 32 个 ASCII 可打印字符。128 位摘要中的位从最高有效位转换为最低有效位,
每次四位,转换为 ASCII 表示形式,如下所示。每四位由字符 0123456789abcdef 中熟悉的十六进制表示法表示
。也就是说,二进制 0000 由字符“0”表示,0001 由“1”表示,依此类推,直到
1111 由“f”表示。
Rust 的MD5 箱实现了 Digest 特征:https://docs.rs/digest/0.9.0/digest/trait.Digest.html8 ,它摘要为由16 位切片组成的 GenericArray 。
如何从 RFC 转换为这种哈希格式?为什么 md-5 crate 没有一个将摘要显示为十六进制值的简单功能?
该板条箱literal_hex执行相反的操作:将十六进制连接值的字符串转换为字节。
如何从 RFC 转换为这种哈希格式?
使用(LowerHex) 格式说明符对其x进行格式化:
fn main() {
let s = md5::Md5::new();
println!("{:x}", s.finalize());
// d41d8cd98f00b204e9800998ecf8427e
println!("{:x}", md5::Md5::digest(b""));
// d41d8cd98f00b204e9800998ecf8427e
}
Run Code Online (Sandbox Code Playgroud)
为什么 md-5 crate 没有一个将摘要显示为十六进制值的简单功能?
因为这是 Rust 内置的。