我在数据库中有纯文本的记录。 从外部源我得到字符串值的md5哈希。
Entities DB = ...
DB.SomeObjects.FirstOrDefault(p => p.PlainTextValue == md5HashedValue);
如何将此PlainTextValue转换为md5?
答案 0 :(得分:0)
这是一个糟糕的实施。要使用它,您需要从DB读取所有行,在应用程序端计算其MD5,并将它们与提供的值进行比较。每次执行此查询时都会发生这种情况。这是因为DB没有办法进行计算,因此无法将查询转换为SQL查询。 (如果它不够清楚:你只能读取数据库中的所有文本,将它们存储在列表或某个地方,然后,在应用程序中,每次都计算所有的哈希值)
理想的解决方案是在数据库,新列或相关表上计算MD5,以避免重复计算,并且必须读取并将所有文本传输到应用程序。 (然后,每当文本更改或插入新文本时,计算哈希值,并将其存储在数据库中)。
要使用C#计算MD5,您可以查看this SO Q&A。