< 返回版块

zhujy2017 发表于 2021-08-03 20:08

Tags:openssl,aes 128 cbc,字符串加密解密

刚刚学习rust,求前辈们帮心写2个函数。 AES-128-CBC 加密函数 AES-128-CBC 解密函数

要能够可执行的,我不会调试。哈哈

评论区

写评论
daleione 2021-08-04 11:32

有问题可以问,直接要代码略过分。

LuoZijun 2021-08-03 21:41

https://github.com/shadowsocks/crypto2/blob/dev/src/blockmode/cbc.rs#L133-L184

sunnysab 2021-08-03 21:00

有一个库叫 aes,可以试一下

最新版本是 0.7,改动较大,我用过 aes 0.6. 这是以前写的一段代码

pub fn generate_passwd_string(clear_password: &String, key: &String) -> String {
    use block_modes::block_padding::Pkcs7;
    use block_modes::{BlockMode, Cbc};
    type Aes128Cbc = Cbc<aes::Aes128, Pkcs7>;

    // Create an AES object.
    let cipher = Aes128Cbc::new_var(key.as_bytes(), &[0u8; 16]).unwrap();
    // Concat plaintext: 64 bytes random bytes and original password.
    let mut content = Vec::new();
    content.extend_from_slice(&[0u8; 64]);
    content.extend_from_slice(clear_password.as_bytes());

    // Encrypt with AES and use do base64 encoding.
    let encrypted_passwd = cipher.encrypt_vec(&content);
    base64::encode(encrypted_passwd)
}

资料确实难找,当时折腾了好一会儿. 现在这个库的版本都不敢升

Mike Tang 2021-08-03 20:15

这种直接打屁屁。

1 共 4 条评论, 1 页