ruby - как зашифровать текст - PullRequest
13 голосов
/ 03 февраля 2010

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

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

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

Ответы [ 4 ]

20 голосов
/ 03 февраля 2010

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

16 голосов
/ 08 марта 2010
gem install encryptor

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

http://github.com/shuber/encryptor

14 голосов
/ 03 февраля 2010

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

РЕДАКТИРОВАТЬ - Это хорошее начало для замены символов:

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

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

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

0 голосов
/ 03 февраля 2010

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

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...