我们的客户想给我们一个数据库。原始数据库有一个电话号码列。他不想给我们一个电话号码。不知怎的,我不确定为什么 - 决定客户端会给我们加密的电话号码加密128位AES密钥。
我们会告诉客户哪个电话号码是出于某种目的而入围,但我们永远不会知道实际的电话号码是什么。我们只知道加密号码。
以下是我不明白的事情:
答案 0 :(得分:5)
IMO这是错误的做法。客户端应该用一个指向带有真实电话号码的表的ID替换它们,而不是加密电话号码,这仍然有可能让你解密它(例如,因为有人泄漏了密钥)。当然,这个查找表和他在一起,你永远不会得到它。
即
原始表:
Name | Phone
-------+---------
Erich | 555-4245
Max | 1234-567
你得到:
Name | Phone
-------+---------
Erich | 1
Max | 2
只有您的客户有:
ID | Phone
---+---------
1 | 555-4245
2 | 1234-567
答案 1 :(得分:1)
按顺序解决您的疑虑:
可能是,可能不是。事实上你还没有真正提到目的是什么:
等等,等等。在不知道情况的情况下,无法确定这是否是适当的加密方案。 (虽然它可能是一个可靠的选择)。
虽然总而言之这听起来并不像是需要的。这听起来像是有人根据外观而不是技术优势做出决定 - “我们使用浏览器中使用的相同128位加密来加密您的电话号码”听起来不错但实际上是否需要?