用于存储加密字段数据的最佳数据类型

时间:2011-07-20 11:00:26

标签: c# sql encryption query-optimization

我有一个sql数据库,需要存储一组必须快速查询的人口统计个人数据。

要求数据必须加密,因为它是个人信息,但也必须搜索以允许记录匹配。

我的问题是我应该定义哪些数据类型,如果它们是varchar或varbinary,它们将存储加密数据?

我的想法是varbinary会减少代码中不必要的开销,将加密数据转换为base64字符串,但是在sql中查询这些数据要比查询varchar字段慢很多。我不确定varbinary字段如何与非聚集索引一起执行?

[编辑] 我的问题实际上是针对查询性能。在比较字段是否相等时,存储varbinary数据是否会影响查询性能?

2 个答案:

答案 0 :(得分:1)

您需要保护整个数据库 - 而不是单个字段。否则你将无法查询它们。

答案 1 :(得分:1)

我过去所做的是计算加密数据的哈希并将其存储在另一列中。哈希可以是可以索引的varchar字段。总的来说,我认为与varbinary搜索相比,varchar字段可以提供更好的查询性能。