3

我将 ActiveRecordserialize方法与我自己的一个类一起使用,AESCoder. 这将每次使用带有随机初始化向量的 aes-256-cbc。当我将它存储在数据库中时,这个初始化向量被预先添加到字段中,并且当然是在反序列化之前提取的。

现在,这个方案阻止我对这些属性使用任何查找器。我必须选择我需要的所有行,这些行将被自动解密,并在select项目列表上执行 ruby​​。当然,这是一个巨大的性能瓶颈,我无法负担这个应用程序。

一种解决方案是不使用随机 IV,但 aes-256-cbc 将不再安全。

我在这里忽略了什么吗?

4

1 回答 1

2

正如其他人所指出的,将无法绕过解密要搜索的行的需要。您仍然可以通过让 Postgres 在其pgcrypto 扩展的帮助下完成繁重的工作来提高性能,而不是选择所有内容并在应用程序层对其进行分类。

Heroku最近开始提供 Postgres 9.1并且似乎支持 pgcrypto。根据博客文章,您可能必须迁移数据库才能切换到 Postgres 9.1。

请注意,Herokus 付费的“共享数据库”计划似乎仍然在 Postgres 8 上运行并且还不支持 pgcrypto,但应该很快就会升级。Postgres 9 引入了一种启用和使用扩展的新方法,可以更轻松地在共享托管环境中提供它们。

于 2012-05-22T16:45:55.547 回答