Han*_*ney 0 .net regex sql-server-2005 credit-card mask
我的数据库中有一列存储信用卡号.将它保存在数据库中大约两周后,我希望能够运行查询来更新所有信用卡条目并屏蔽它们 - 仅显示最后四位数字.到目前为止,我找不到办法解决这个问题是不成功的 - 如果信用卡号码的长度不一样怎么办?如果我能掩盖前12位数字会更好,除非它以3开始,然后仅掩盖前11位.
您必须立即重组您对付款(信用)卡数据的处理.否则,您的公司可能会失去处理支付卡的能力,然后您可能会被解雇.如果这些纯文本数字被未经授权的来源泄露......
首先,您需要加密支付卡名称,号码和到期日期.然后,您将需要进行数据库备份,将其放在磁带上,并将其置于异地.然后,清除所有现有的数据库备份,因为它们包含纯文本信用卡号码 - 根据支付卡行业,这是一个很大的禁忌号码.
最安全的做法是将四个最右边的数字存储在表中另一个加密列中.然后,您只需选择此字段,并在客户端解密(请记住,您必须确保支付卡号码在"通过线路"[也称为您的LAN或WAN或Internet连接]时加密).将数字显示为"以####结尾的帐户"或类似内容.
简单的答案是:
UPDATE dbo.MyLittleSecurityBreach
SET CreditCardNumber = RIGHT(CreditCardNumber, 4);
Run Code Online (Sandbox Code Playgroud)
不要在数据库中存储*掩码字符,有什么用呢?如果您有类型,则表示Amex为15个字符,其他所有为16个.在演示时添加11或12个掩码字符.
这就是说,如果你没有听取加密这些数据的建议,我强烈建议你告诉你的雇主你需要有人来帮助提高数据安全性.这是一场等待发生的灾难.