除ASCII与十进制外,SHA256输出的第三种数据格式是什么?
SHA256哈希结果的格式解析
示例Rust代码
use sha2::{Sha256,Digest}; fn main() { let mut hasher = Sha256::new(); hasher.update(b"hello world"); let result = hasher.finalize(); let str_result = format!("{:x}", result); println!("A string is: {:x}", result); println!("ASCII decimal maps: {:?}", str_result.bytes()); println!("What data coding is this?: {:?}", result); }
运行输出
The SHA256 hash as a string is: b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9 ASCII decimal maps: Bytes(Copied { it: Iter([98, 57, 52, 100, 50, 55, 98, 57, 57, 51, 52, 100, 51, 101, 48, 56, 97, 53, 50, 101, 53, 50, 100, 55, 100, 97, 55, 100, 97, 98, 102, 97, 99, 52, 56, 52, 101, 102, 101, 51, 55, 97, 53, 51, 56, 48, 101, 101, 57, 48, 56, 56, 102, 55, 97, 99, 101, 50, 101, 102, 99, 100, 101, 57]) }) What data coding is this?: [185, 77, 39, 185, 147, 77, 62, 8, 165, 46, 82, 215, 218, 125, 171, 250, 196, 132, 239, 227, 122, 83, 128, 238, 144, 136, 247, 172, 226, 239, 205, 233]
问题与解答
已知前两项分别为SHA256哈希的ASCII十六进制字符串表示、ASCII字符对应的十进制值映射,请问第三项[185, 77, 39, ..., 233]是什么数据格式?
- 这是SHA256哈希的原始二进制字节数组的十进制数值表示。SHA256算法生成的哈希值本质是32个连续的8位二进制字节,数组里的每个数字就是对应字节的十进制形式(范围0-255),这是哈希值最紧凑、最原始的存储形式,前面的十六进制字符串是把每个字节转换成两位十六进制字符后的可读性表示,二者本质等价。
内容的提问来源于stack exchange,提问作者decodebytes
相关产品推荐
相关产品推荐

