mysql - 为什么使用 Ruby 将 AES 加密字符串保存为空白到 MySQL 表?

标签 mysql ruby aes 8-bit

我有一个名为 Encryption 的模型,它生成一个 AES 加密字符串并将其保存到一个名为 encryptions 的数据库表中。我的加密表架构如下:

id : bigint unsigned
user_id : bigint unsigned
encryption : VARCHAR(128) (utf8_unicode_ci)
created_at : datetime
updated_at : datetime

但是,当我在我的加密模型实例上调用 .save 时,encryption.encryption(在数据库中)的值为空('')。

这是模型的内容:

ruby-1.9.2-head :005 > encryption
 => #<Encryption id: nil, user_id: 1, encryption: "\xD6\xD6\x95\x15\x0F\x92\xC6\x01\x86\x1E\x88\xD1\xB0\x1D\xE0\xEC", created_at: nil, updated_at: nil> 

如您所见,它在模型中确实有一个值。关于为什么该字段在数据库中保存为空白的任何想法?

最佳答案

我正在使用 strongbox gem 来做类似的事情,它要求列类型为 :binary,而不是文本,也许你可以试试……

关于mysql - 为什么使用 Ruby 将 AES 加密字符串保存为空白到 MySQL 表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6294293/

相关文章:

mysql - 左连接还是内连接?

MySQL 触发 IF 条件

mysql - 如何在MySQL中查看InnoDB表的大小?

ruby-on-rails - 按当天的 Active Record 顺序

ruby - 没有要加载的文件——sensu-handler

ruby-on-rails - 使用 ruby​​ 将文本添加到现有 pdf

python MySQLdb 错误?

java - AES-256 可以在 API 级别 26+ 的 Android 设备上工作吗?

java - 每个字符串都作为 SecretKeySpec 的参数?

python - 使用 python 解密 Amazon SP API 报告文档。 AES、CBC、base64