我正在设计一个使用nodeJs和mongoDb的微服务架构。我有一个用来保存驾照号码的用例,它也可以用来验证用户。现在,由于DL编号是PII,我不想按原样保存字符串,我想在保存之前对其进行加密。我可以每次使用加密逻辑来生成一个通用的加密字符串,这样我就可以加密DL编号并在db中进行查找。但我担心,如果黑客知道其中一个的加密逻辑,他们就可以解密并获得所有DL号码。对于这种用例,有人能给我推荐最好的方法吗?
发布于 2018-09-10 10:05:07
暂时忽略索引,听起来最好的方法是使用键控散列来散列许可证编号,并存储散列。这类似于对称加密,因为您需要保密密钥。然而,这是单向的,所以获得秘密的攻击者仍然需要暴力强制每个条目来获得数字。
如果密钥被泄露,根据许可证编号方案,暴力强制每个数字的难度将从简单到微不足道。但是,它比纯文本更好。
然而,如果你真的需要它作为索引,那么你的优先级似乎是相互冲突的。我会听从别人的意见,我对数据库索引了解不多。
如果是我,而且我有空闲的时间,我会设置一个包含散列的表和一个以明文车牌号作为索引的表。添加1000万行(或一些与您相关的上限)的测试数据,并对每个数据进行几千次随机查找。
https://stackoverflow.com/questions/52249865
复制相似问题