SHA-2 标准中规定了 6 种标准算法: Sha224, Sha256, Sha512_224, Sha512_256, Sha384 和 Sha512。
核心算法是 SHA-256 和 SHA-512。其它算法都是基于核心算法对值进行不同精度的操作,前两个基于 SHA-256,后四个 基于 SHA-512。
用到的库
加密示例
// 需要引入 Digest 类型
use sha2::{Sha256, Digest};
use chrono::prelude::*;
fn main() {
// 获取当前时间戳 秒
let timestamp: i64 = Utc::now().timestamp();
// 时间戳 毫秒
// let timestamp_millis: i64 = Utc::now().timestamp_millis();
// 示例应用ID
let app_key = "hello-world";
// 要加密的字符串: app_key + timestamp
let str_source = format!("{}{}", app_key, timestamp);
// 使用 Sha256 加密算法
let mut hasher = Sha256::new();
hasher.update(str_source.as_str());
// GenericArray<u8>
let result = hasher.finalize();
// GenericArray 转为 16进制小写字符串
let res = format!("{:x}", result);
println!("{} -> {}", str_source, res);
}
输出类似:
hello-world1687318667
->
82f00d7e058923c5b704653f87da825e65d054dcd5a3822db7c3c525f92f661d