HTTPS - определенно путь. Однако, если по какой-либо причине HTTPS недоступен (например, вы работаете в Google App Engine с пользовательским доменом), вы можете попробовать jCryption на внешнем интерфейсе и pyCrypto на сервер.
Преимущество заключается в том, что вам не нужно покупать SSL-сертификат или заниматься администрированием сертификатов. Недостаток (и он серьезный) заключается в том, что очень легко ошибиться в шифровании и подвергнуть ваш сайт уязвимостям безопасности. Кроме того, без сертификата ваш сайт по-прежнему уязвим для определенных типов атак . Поэтому убедитесь, что вы знаете, как работает шифрование, и действуйте с осторожностью.