【发布时间】:2017-03-15 04:12:42
【问题描述】:
我需要在我们的数据库中加密客户的会员编号。好吧,我们使用的是 MS SQL Server,我想我会使用 encryptbypassphrase,将写入该字段的每个位置更改为加密,并将读取该字段的每个位置更改为解密,等等。
除了...在数据库中的某些地方,该字段用于链接多条记录。我认为没问题,我只是将连接从“join blahblah on a.member_number=b.member_number”更改为“join blahblah on a.member_number_encrypted=b.member_number_encrypted”。但这不起作用,因为我发现如果我两次加密相同的值,我不会得到相同的加密值。我猜是在里面加点盐什么的。而且我不想说“在decryptbypassphrase(@pw,a.member_number_encrypted)=decryptbypassphrase(@pw,b.member_number_encrypted)上加入blahblah,因为这会将索引查找变成完整文件搜索。我认为它会不得不索引更大的加密值是丑陋的,但是......
所以...有什么方法可以强制 encryptbypassphrase 始终将相同的输入加密到相同的输出?或者这是否意味着在大多数情况下加入加密字段根本不切实际?
还是我错过了什么?
【问题讨论】:
标签: sql-server encryption