use libaes::Cipher;
use crate::base64::decode;
pub fn aes_128_cbc(iv: &str, encrypted_data: &str, key: &str) -> Result<String, String> {
if iv.len() != 24 {
return Err(format!("(iv)长度不够: {}", key.len()));
}
if key.len() != 24 {
return Err(format!("(key)长度不够: {}", key.len()));
}
let iv = decode(iv);
let encrypted_data = decode(encrypted_data);
let key = decode(key);
let mut array_tmp = [0u8; 16];
array_tmp[..16].copy_from_slice(key[..].as_ref());
let cipher = Cipher::new_128(&array_tmp);
let decrypted = cipher.cbc_decrypt(iv[..].as_ref(), encrypted_data[..].as_ref());
Ok(unsafe { String::from_utf8_unchecked(decrypted) })
}