.net 在SQL Server中屏蔽信用卡号

.net 在SQL Server中屏蔽信用卡号,.net,regex,sql-server-2005,credit-card,mask,.net,Regex,Sql Server 2005,Credit Card,Mask,我的数据库中有一列存储信用卡号。在数据库中保存了大约两周后,我希望能够运行一个查询来更新所有信用卡条目并屏蔽它们——只显示最后四位数字。到目前为止,我还没有找到解决这个问题的方法——如果信用卡号码长度不同怎么办?如果我能屏蔽前12位数字,除非它以3开头,那么最好只屏蔽前11位。简单的答案是: UPDATE dbo.MyLittleSecurityBreach SET CreditCardNumber = RIGHT(CreditCardNumber, 4); 不用麻烦在数据库中存储*

我的数据库中有一列存储信用卡号。在数据库中保存了大约两周后,我希望能够运行一个查询来更新所有信用卡条目并屏蔽它们——只显示最后四位数字。到目前为止,我还没有找到解决这个问题的方法——如果信用卡号码长度不同怎么办?如果我能屏蔽前12位数字,除非它以3开头,那么最好只屏蔽前11位。

简单的答案是:

UPDATE dbo.MyLittleSecurityBreach 
    SET CreditCardNumber = RIGHT(CreditCardNumber, 4);
不用麻烦在数据库中存储*掩码字符,这有什么用?如果你有这个类型,你就知道美国运通是15个字符,其他的都是16个字符。在演示时添加11或12个掩码字符


综上所述,如果你没有听从加密这些数据的建议,我强烈建议你告诉你的雇主,你需要有人帮助数据安全。这是一场即将发生的灾难。

您必须立即重新调整对支付信用卡数据的处理。否则,您的公司可能会失去处理支付卡的能力,然后您可能会被解雇。如果这些纯文本数字被未经授权的来源泄露

首先,您需要加密您的支付卡名称、号码和到期日期。然后,您需要进行数据库备份,将其放在磁带上,然后将其移出现场。然后,清除所有现有的数据库备份,因为这些备份包含纯文本的信用卡号——根据


最安全的做法是将最右边的四位数字存储在表中另一个加密列中。然后,您只需选择此字段,并在客户端对其进行解密。记住,您必须确保在通过网络[a.k.a.您的LAN或WAN或internet连接]时对支付卡号进行加密。将号码显示为以或类似结尾的帐户。

如果您存储的是信用卡号码,您可能应该考虑对其进行加密。我如何才能做到这一点?通过将信用卡号码存储为纯文本,您不仅在实践错误,但你也让你的公司面临被禁止处理支付卡交易的风险。想一想在你的年度回顾中会有什么结果@硬编码:当然。这种事情会扼杀一个生意人干杯-我感谢大家的关心!