1 个不稳定版本
0.1.0 | 2024年6月26日 |
---|
#1154 in 加密
7KB
75 行
tinycrypt
轻量级且简单的 Rust 加密库
tinycrypt 致力于成为一个小巧的依赖库,提供加密和解密功能。就这么简单。没有冗余,没有不必要的依赖(和功能),也没有复杂的 API。
使用 Argon2 和 Aes-gcm-siv 进行加密。
lib.rs
:
Tinycrypt
一个小巧简单的加密库。
导出两个函数(encrypt 和 decrypt)以及一个错误类型(CryptographyError),该类型实现了 std::error::Error。
基本用法
use tinycrypt::{Encrypt, Decrypt, CryptographyError};
let data = "Hello world!";
let secure_password = "password";
let encrypted_data: Vec<u8> = encrypt(data.as_bytes(), secure_password.as_bytes()).unwrap();
println!("Data encrypted!");
let decrypted_data: Vec<u8> = decrypt(&encrypted_data, password.as_bytes()).unwrap();
//Can also pattern match, to seperate invalid passwords from actual errors.
match decrypt(&encrypted_data, password.as_bytes()) {
Ok(data) => (), //do something with data
Err(password_error @ CryptographyError::IncorrectPassword) => (), //do something with incorrect password
Err(error) => (), //do something with a different error
}
println!("{}", String::from_utf8(&decrypted_data).unwrap());
依赖
~2–2.8MB
~60K SLoC