Если вы хотите зашифровать данные только в localStorage, вы можете использовать криптографию с открытым ключом. Не генерируйте ключи в JS, делайте это на стороне сервера и отправляйте открытый ключ со страницей. К сожалению, я не знаю ни одной хорошо протестированной и поддерживаемой криптографической библиотеки в Javascript.
Для того уровня безопасности, к которому вы стремитесь (всего лишь небольшой слой для предотвращения чтения данных пользователем), вы можете выбрать любую реализацию, какую захотите.
На стороне сервера вы можете использовать гем OpenSSL с классом OpenSSL :: PKey :: RSA.
Для тех, кто читает это: не используйте криптографию Javascript, это плохо !