为加密数据创建排序列

3
我正在将加密数据保存到数据库中。是否有一种方法可以创建纯文本数据的“哈希码”或指纹或校验和,以便如果我按“哈希码”排序/排序,则顺序将与我保存纯文本数据并对其执行相同的排序/排序操作时相同? 我基本上需要类似于SOUNDEX()函数的功能,它会给我一个值,该值将维护纯文本数据的顺序。然后我将保存加密数据和“哈希码”,在查询数据时按“哈希码”字段排序。如果可能的话,我需要在应用程序中执行此操作,而不是在SQL DB中执行。我正在使用Entity Framework和SQL 2008和C# 4.0。

你需要保序加密来实现,这会显著削弱加密的强度。 - CodesInChaos
1个回答

3

加密会故意破坏明文中的任何表现结构,因此任何排序结构也将被破坏。使用非密码散列码将导致潜在的安全漏洞,因为未加密记录的已知结构。

您可以从未加密数据创建一个订单列并存储该列,但这将需要每次添加新记录时解密整个或部分数据库。

您可以从10开始对记录进行编号:10、20、30等,这将允许使用二进制搜索插入新记录。每隔一段时间解密并重新编号整个数据库,恢复记录之间的间隙。这不是理想的解决方案,但是是一个可能的选择。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接