Ruby - как зашифровать текст

Мне нужно зашифровать строку (из текстовой области), которая также будет расшифрована позже, когда она будет отображаться.

Я не должен беспокоиться о том, что это очень безопасно, но просто не хочу хранить данные в текстовом формате.

Есть ли у кого-нибудь предложения по тому, как это сделать в Rails?

Ответы

Ответ 1

Если вы не заботитесь о безопасности, вы можете просто закодировать base64:

encoded = Base64::encode(string)
decoded = Base64::decode(encoded)

Кстати, он также подходит для кодирования двоичных данных.

На самом деле это не шифрование, поскольку любой разработчик может даже предположить, что его кодированные Base64 данные.

Ответ 2

Существует RubyGem с именем Crypt, который обеспечивает чистую реализацию Ruby ряда алгоритмов шифрования.

Ответ 3

gem install encryptor

Он обертывает стандартную библиотеку Ruby OpenSSL и позволяет использовать любой из ее алгоритмов.

http://github.com/shuber/encryptor

Ответ 4

Есть ли реализация ROT13 в Ruby/Rails (должна быть...), которая полностью небезопасна, кроме как для читателей (и идиотских), и, похоже, подходит для вашего использования.

EDIT - это хороший старт для замены символов:

$_.tr! "A-Za-z", "N-ZA-Mn-za-m";

Он запрашивает ввод пользователя, затем меняет символы.

РЕДАКТИРОВАТЬ Если вы не знакомы, ROT13 присваивает каждой букве свое натуральное число. A = 1, B = 2 и т.д. Затем он добавляет 13 к каждому числу, эффективно вращая его на полпути вокруг алфавита. Halfway bit отлично, потому что, в отличие, скажем, ROT12, вы можете снова запустить ROT13 для декодирования. Одна функция для обоих. ИЛИ вы могли бы запустить ROT12 13 раз, я думаю (12 * 13 = 156. 156/26 = 6.) ROT 13 лучше для этого.