【发布时间】:2016-03-15 07:06:01
【问题描述】:
出于搜索/索引目的,是否有一种简单/干净的方法可以使用 MySQL 进行部分字段加密?
例如,使用诸如AES_ENCRYPT() 之类的内置功能或任何其他等效功能?
例子:
- 我想加密所有姓氏字段,不包括前 3 个字符。
- 我想加密除最后 4 位之外的所有信用卡号字段。
更糟糕的情况是,我可以创建一个子字符串,然后对所需部分进行加密,然后将数据连接起来。然后我可以做一个类似的解密过程。对于我希望在某个地方构建的东西,这似乎需要做很多工作。
我的谷歌没有得到回报。有谁知道干净利落的方法?
【问题讨论】:
-
不 - 不干净。仅加密值的“部分”意味着该值不是原子的,因此您的数据库未标准化。可以通过创建一个包含函数的视图,然后禁用对表的直接 SELECT 访问。
标签: mysql encryption indexing aes pci-compliance