【问题标题】:Is ValueConverter called after querying?查询后是否调用ValueConverter?
【发布时间】:2020-09-15 10:36:14
【问题描述】:

我在我的 ASP.NET Core 项目中使用ValueConverter 进行列加密。

我必须检查电子邮件地址是否重复(由aes-gcm 加密)。
当我执行Where(x => x.Email == email) 时,结果中什么也找不到。

所以我猜,ValueConverter 在查询后被调用。
如果我的猜测是正确的,那我该怎么办?
有没有其他解决办法?

【问题讨论】:

  • 由于您的问题中缺少代码,我不能更具体地建议在检查您的数据库中是否存在输入电子邮件地址之前对其进行加密。
  • 我刚刚阅读了一篇关于它的文章here,其中指出您的查询值应该在执行之前进行转换。也许您有套管问题?
  • @ChrisPickford 我认为你的建议很有道理。我弄清楚我的问题是什么。我正在使用随机 IV(Nonce)加密。所以每次我加密时,密码都会改变。因此,输入的电子邮件地址不匹配。顺便感谢您的评论:)
  • 很高兴你想通了,你可以在下面添加你所做的作为答案,以防它帮助别人。
  • @ChrisPickford 我会的。我是这个社区的菜鸟。所以你的款待真的对我有帮助。很多。不过对不起我的英语:(

标签: c# asp.net-core ef-core-3.1


【解决方案1】:

我知道我的问题是什么。 我正在使用随机 IV(Nonce)的数据加密。 因此,每次比较电子邮件地址时,密码都会发生变化。 所以,我决定确定我的 IV 是什么,并且输入电子邮件必须 用那个 IV 加密。

非常感谢大家:)

  • 我解决了这个问题。这有点hacky,但它有效。 我将 hmac 添加到密码中。然后我比较hmac 输入电子邮件和列。希望这个解决方案对你们有帮助:)

【讨论】:

  • @Silvermind 哦,我没有意识到这一点。谢谢你:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-11-19
  • 1970-01-01
  • 2020-07-05
  • 1970-01-01
  • 2014-10-18
  • 1970-01-01
  • 2014-01-07
相关资源
最近更新 更多