ハッシュをJSONにシリアル化し、gemcrypt19とblowfishアルゴリズムを使用してハッシュをエンコードするRailsアプリを構築しています。Rails 3.0.9、Ruby 1.9.2 p180、最新のcrypt19 v1.2.1を使用しており、Windows7で開発しています。私のRailsコントローラーでは、次のことを行います。
require 'crypt/blowfish'
h=Hash.new
h["thing"]="12345"
h["thang"]="abcdefghijklmnopqrstuvwxyz"
blowfish=Crypt::Blowfish.new("SECRET")
encrypted_thingy=blowfish.encrypt_string(h.to_json)
モデル内の値(文字列)にencrypted_thingyを割り当てます。
@my_model.string_thing=encrypted_thingy
@my_model.save
しかし、モデルを保存すると、モデルが保存される場所で引数エラー例外がスローされます。
invalid byte sequence in US-ASCII
(そして、私がそれに単純な古い文字列@ my_model = "xxxxxxxx"を割り当てると、すべてが正常に機能します。
私の最終的な計画は、encrypted_thingyをモデルを介してデータベースに保存し、後でそれを復号化し、JSONを解析して、「thing」と「thang」の値を取得することです。
'ネットを検索すると、エンコーディングを変更する必要があることがわかりましたが、crypt19/blowfishエンコーディングの結果でそれをどのように行うかは明確ではありません。
この暗号化された文字列を、私が保存する他の文字列と同じように文字列として保存する方法はありますか?
または、(リバーシブルマジックとともに)魔法を適用して、そのファンキーな文字列を、電子メールで渡すことができる実際の文字列に変換する方法はありますか?