5个版本
0.2.2 | 2024年3月9日 |
---|---|
0.2.1 |
|
0.2.0 | 2023年12月27日 |
0.1.2 | 2023年12月23日 |
#1053 in 加密学
每月331次下载
在rufendec中使用
12KB
165 行
byte-aes
byte-aes是一个针对流行的aes crate的简单包装。目标是通过使用256位高级加密标准进行加密和解密操作,以便方便地使用而不是使用aes crate的底层函数。
如何使用
尝试使用字符串加密
use byte_aes::Aes256Cryptor;
fn main() {
let my_32byte_key = "Thisi$MyKeyT0Encryp!thislastTime";
let cryptor = Aes256Cryptor::try_from(my_32byte_key).unwrap();
let original_text = "I am Omkaram Venkatesh and
this is my plain text and some random chars 223@#$^$%*%^(!#@%$~@#$[]]'///\\drewe. Lets see if this gets encrypted now)".to_string();
let encrypted_bytes: Vec<u8> = cryptor.encrypt(&original_text);
let decrypted_text: String =
String::from_utf8_lossy(&cryptor.decrypt(encrypted_bytes).unwrap_or_default()).to_string();
assert_eq!(original_text, decrypted_text);
}
尝试使用原始字节加密
use byte_aes::Aes256Cryptor;
fn main() {
let key = "c4ca4238a0b923820dcc509a6f75849b";
let cryptor = Aes256Cryptor::try_from(key).unwrap();
let buf: [u8; 4] = [1, 0, 0, 1];
//let buf:[u8;16] = [1, 0, 0, 1, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 0];
let encrypt_buf = cryptor.encrypt(buf);
//println!("{encrypt_buf:?}");
let clear_buf = cryptor.decrypt(encrypt_buf);
println!("{clear_buf:?}"); // [1,1]
let buf: [u8; 17] = [
1, 0, 0, 1, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 13, 0,
];
let encrypt_buf = cryptor.encrypt(buf);
//println!("{encrypt_buf:?}");
let clear_buf = cryptor.decrypt(encrypt_buf);
println!("{clear_buf:?}"); // [1,1]
let buf = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 200]; // invalid data for decrypting
let clear_buf = cryptor.decrypt(buf);
println!("{clear_buf:?}");
}
依赖项
~590KB
~14K SLoC