The app takes a string and a numeric key, then shifts each character's Unicode value while maintaining the alphabet boundaries using the modulo operator.
S3's server-side encryption is great, but your cloud provider holds the keys. S3Proxy sits between your app and S3, encrypting everything before it leaves your infrastructure ...