use sha2::{Sha256, Sha512, Digest};

fn main() {
    println!("{}", to_hex(&sha256(b"hello world")));
    println!("{}", to_hex(&sha512(b"hello world")));
}

fn sha256(data: &[u8]) -> Vec<u8> {
    let mut hasher = Sha256::new();
    hasher.input(data);
    let result = hasher.result();
    result[..].to_vec()
}

fn sha512(data: &[u8]) -> Vec<u8> {
    let mut hasher = Sha512::new();
    hasher.input(data);
    let result = hasher.result();
    result[..].to_vec()
}

fn to_hex(bs: &[u8]) -> String {
    bs.iter().map(|u| {
        let x = format!("{:x}", u);
        if x.len() == 1 {
            "0".to_owned() + &x
         } else {
             x
         }
    }).collect()
}
