Refactored encryption using .map
Encryptor and decryptor dynamically accept rotation parameter