gpt4 book ai didi

MySQL 部分字段加密

转载 作者:太空宇宙 更新时间:2023-11-03 10:42:29 24 4
gpt4 key购买 nike

为了搜索/索引目的,是否有一种简单/干净的方法来使用 MySQL 进行部分字段加密?

例如,使用 AES_ENCRYPT() 等内置功能或任何其他等效功能?

例子:

  1. 我想加密所有姓氏字段,不包括前 3 个字符。
  2. 我想加密除最后 4 位数字之外的所有信用卡号字段。

作为更糟糕的情况,我可以做一个子字符串,然后对所需部分进行加密,然后连接数据。然后我可以做一个类似的解密过程。对于我希望在某处构建的东西,这似乎需要做很多工作。

我的谷歌没有得到返回。有谁知道干净地执行此操作的方法?

最佳答案

在支付卡处理领域,通常为卡号的最后四位数字和代表整个卡号的加密 token 维护单独的列。

数据重复最少。

最后四位数字可能以明文形式保存,以帮助客户了解正在使用的是哪张支付卡。用户的姓名、地址和卡的到期日期也可以明文形式存储。

卡片验证码(通常显示在卡片背面的三位数或四位数代码)一旦卡片被验证,在任何情况下都不得以任何形式存储.

重要的是要了解数据库中的对称加密(如 AES)是抵御网络犯罪分子的薄弱防御。它太弱了,几乎毫无用处。那是因为您的 Web 应用程序软件必须具有随时可用的 key 来加密新信息。许多对在线系统的攻击都是通过网络应用程序进入的,因此网络犯罪分子可以轻松获取 key 。然后他有你的卡数据。

如果您收集或存储支付卡号(信用卡号),您的企业将受到支付卡行业 (PCI) 数据安全要求的约束。特别是,您最终必须填写这份 self 评估问卷 https://www.pcisecuritystandards.org/documents/SAQ_A-EP_v3-1.pdf .第一年,这将花费大约 50,000 美元,随后的每一年大约是这个数额的一半。

另一方面,通过像 stripe.com 或 Paypal 这样的支付处理器工作可以利用他们的 PCI 数据安全要求并减少您的风险。

因此请三思,是否要收集这些信息,并与您的会计师或首席财务官交谈。

如果您必须存储支付卡信息,您可以考虑使用非对称(公共(public)/私有(private))加密机制。要安全地执行此操作,请设置一台专用机器,并在该机器上生成一个 key 对(可能是 RSA)。将公钥导出到您的 Web 应用程序,不要复制私钥。然后关闭专用机器及其磁盘驱动器,并断开它与网络的连接。(打开它并卸下wifi和蓝牙适配卡,然后拔下以太网电缆。)

在您的网络应用程序上使用公钥加密卡片并将它们存储在您的数据库中。当你需要使用支付卡号来处理支付之类的事情时,你可以暂时打开专用机器,用它来做你的处理。

如果您有信用卡号,您的系统就会成为网络犯罪分子的诱人目标。在您意识到有能力、有上进心和不择手段的人实际上正在密谋反对您之前,这一切可能看起来很偏执。

关于MySQL 部分字段加密,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35998169/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com