#加密解密 #aes #aes-256 #256-bit #包装器 #标准 #底层

byte-aes

byte-aes是一个针对流行的aes crate的简单包装。目标是通过使用256位高级加密标准进行加密和解密操作,以便方便地使用而不是使用aes crate的底层函数。

5个版本

0.2.2 2024年3月9日
0.2.1 2024年3月9日
0.2.0 2023年12月27日
0.1.2 2023年12月23日

#1053 in 加密学

Download history 23/week @ 2024-03-30 6/week @ 2024-04-06 19/week @ 2024-06-08 37/week @ 2024-06-15 98/week @ 2024-06-22 63/week @ 2024-06-29 64/week @ 2024-07-06 98/week @ 2024-07-13

每月331次下载
rufendec中使用

MIT许可

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