Rust SHA-2 加密算法

每日随笔2023-06-21

sha2SHA-2 加密算法标准的 Rust 实现

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