3 个不稳定版本
0.2.1 | 2022年4月15日 |
---|---|
0.2.0 | 2020年7月2日 |
0.1.0 | 2020年6月17日 |
#2341 in 加密学
36KB
738 代码行
pz
Rust 中 PZip 格式的实现。
lib.rs
:
Rust 中 PZip 格式的实现。
流式示例
use std::io;
use pzip::{PZip, Password, Algorithm, Compression, Error, PZipKey};
fn main() -> Result<(), Error> {
let plaintext = b"hello world";
let mut ciphertext = Vec::<u8>::new();
let mut check = Vec::<u8>::new();
let key = Password("pzip");
PZip::encrypt_to(
&mut io::Cursor::new(plaintext),
&mut ciphertext,
Algorithm::AesGcm256,
&key,
Compression::None,
)?;
PZip::decrypt_to(
&mut io::Cursor::new(ciphertext),
&mut check,
key.material()
)?;
assert_eq!(check, plaintext);
Ok(())
}
单次示例
use pzip::{PZip, Password, Algorithm, Compression, Error, PZipKey};
fn main() -> Result<(), Error> {
let key = Password("secret");
let plaintext = b"hello world";
let ciphertext = PZip::encrypt(
plaintext,
Algorithm::AesGcm256,
&key,
Compression::None
)?;
let check = PZip::decrypt(&ciphertext, key.material())?;
assert_eq!(check, plaintext);
Ok(())
}
依赖
~7–15MB
~267K SLoC