1-7.rs (774B)
1 use base64::prelude::*; 2 use openssl::symm::{Cipher, decrypt}; 3 use std::io::{self, Read}; 4 5 fn main() -> Result<(), Box<dyn std::error::Error>> { 6 let mut buffer = String::new(); 7 io::stdin().read_to_string(&mut buffer)?; 8 let b64_data = buffer.replace('\n', "").replace('\r', ""); 9 const KEY: &str = "YELLOW SUBMARINE"; 10 let decoded = BASE64_STANDARD.decode(b64_data.as_bytes())?; 11 let decrypted = decode_aes(&decoded, KEY)?; 12 print!("{}", decrypted); 13 Ok(()) 14 } 15 fn decode_aes(input: &[u8], key_str: &str) -> Result<String, Box<dyn std::error::Error>> { 16 let key = key_str.as_bytes(); 17 let iv: Option<&[u8]> = None; 18 let cipher = Cipher::aes_128_ecb(); 19 let decoded = decrypt(cipher, key, iv, input)?; 20 Ok(String::from_utf8(decoded)?) 21 }