#加密 #aes #汽车 #hsm #hash

neo-crypto

用 Rust 编写的加密算法库

3 个版本

0.1.2 2024年2月10日
0.1.1 2024年2月10日
0.1.0 2024年2月10日

#9 in #汽车

MIT/Apache

53KB
1.5K SLoC

neo-crypto

此算法库为您提供了实现加密需求的一套简单接口

使用方法

将以下内容添加到您的 Cargo.toml

[dependencies]
neo-crypto = "<version>"

支持的功能

  • SHA 系列

  • AES 系列

  • CMAC

  • AES-MP

  • Base64

  • 内存更新协议

  • 填充

  • RSA(开发中)

示例

SHA

use neo_crypto::sha::{sha, ShaType};
fn main() {
    let msg: String = String::from("It is neo-crypto");
    let hash_text: Vec<u8> = sha(&msg, ShaType::SHA256);
    println!("{:?}", hash_text); //[110, 61, 35, 228, 69, 228, 253, 91, 91, 79, 229, 196, 34, 253, 109, 35, 46, 241, 255, 188, 82, 162, 166, 25, 181, 96, 140, 196, 94, 203, 100, 177]
}

注意

将此添加到 Cargo.toml 以避免溢出警告

[profile.dev]
overflow-checks = false

AES

use neo_crypto::aes::{aes_ecb_enc, AesType};
fn main() {
    let msg: String = String::from("It is neo-crypto");
    let aes_key: String = String::from("0123456789ABCDEF");
    let enc_text: Vec<u8> = aes_ecb_enc(&msg.into_bytes(), &aes_key.into_bytes(), &AesType::AES128);
    println!("{:?}", enc_text); //[20, 223, 131, 141, 80, 131, 81, 224, 163, 90, 211, 211, 249, 186, 21, 60]
}

依赖项

~1–1.4MB
~25K SLoC