26 lines
749 B
Rust
26 lines
749 B
Rust
fn main() {
|
|
let key = "]kYV}(!7P$n5_0i R:?jOWtF/=-pe'AD&@r6%ZXs\"v*N[#wSl9zq2^+g;LoB`aGh{3.HIu4fbK)mU8|dMET><,Qc\\C1yxJ";
|
|
|
|
let s = "The quick brown fox jumps over the lazy dog, who barks VERY loudly!";
|
|
let enc = encode(s, key);
|
|
println!("Encoded: {}", enc);
|
|
println!("Decoded: {}", decode(&enc, key));
|
|
}
|
|
|
|
fn encode(s: &str, key: &str) -> String {
|
|
let key_bytes = key.as_bytes();
|
|
s.bytes()
|
|
.map(|b| key_bytes[(b as usize) - 32] as char)
|
|
.collect()
|
|
}
|
|
|
|
fn decode(s: &str, key: &str) -> String {
|
|
let key_bytes = key.as_bytes();
|
|
s.bytes()
|
|
.map(|b| {
|
|
let index = key_bytes.iter().position(|&k| k == b).unwrap();
|
|
(index + 32) as u8 as char
|
|
})
|
|
.collect()
|
|
}
|