我正在构建一个Rails应用程序,在该应用程序中我将一个散列序列化为JSON,然后使用gem crypt19和blowfish算法对散列进行编码。我使用的是Rails 3.0.9,Ruby 1.9.2 p180,最新的crypt19 v1.2.1和我在Windows7上开发的。在我的Rails控制器,我做的:Ruby 1.9:gem crypt19:blowfish.encrypt_string:编码问题
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”的值。
搜索'net建议我需要更改编码,但不清楚我如何做到这一点的结果crypt19/blowfish编码
有什么办法可以存储将此加密字符串作为字符串,就像我存储的任何其他字符串一样?
还是有应用一些魔术(可逆魔术一起)把这一时髦的字符串转换成一个真正的字符串,我可以在电子邮件绕过的方法吗?
看起来像你是混合编码。尝试在ruby文件中设置magiC#encoding标头 – phoet