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 лучше для этого.