Как зашифровать данные в строке UTF-8 с помощью OpenSSL::Cipher?

В приложении Rails 3.0 (Ruby 1.9.2) я пытаюсь зашифровать некоторые данные, используя что-то вроде этого:

cipher = OpenSSL::Cipher.new 'aes-256-cbc'
cipher.encrypt
cipher.key = cipher.random_key
cipher.iv = cipher.random_iv

encrypted = cipher.update 'most secret data in the world'
encrypted << cipher.final

Это попадет в базу данных UTF-8. Моя проблема в том, что

> encrypted.encoding
 => #<Encoding:ASCII-8BIT>

> encrypted.encode 'utf-8'
Encoding::UndefinedConversionError: "\xF7" from ASCII-8BIT to UTF-8

Как я могу получить зашифрованную строку UTF-8?

22
задан Henrique Zambon 15 June 2012 в 02:02
поделиться