我想知道最好的方法是将加密的信用卡号存储在C#(.net 框架)的 SQL 数据库中。我应该通过使用String/SecureString/Byte Array
某种方式手动完成symmetric encryption
吗?
我听说对于替代方案(可能是更简单的选择),服务提供商(您与之进行交易)将为您提供key
可用于检索交易信息的服务提供商。我不知道如何采用这种方法,但这是更好的选择吗?我想要最安全和最安全的选择。我也想符合PCI 标准。
我想知道最好的方法是将加密的信用卡号存储在C#(.net 框架)的 SQL 数据库中。我应该通过使用String/SecureString/Byte Array
某种方式手动完成symmetric encryption
吗?
我听说对于替代方案(可能是更简单的选择),服务提供商(您与之进行交易)将为您提供key
可用于检索交易信息的服务提供商。我不知道如何采用这种方法,但这是更好的选择吗?我想要最安全和最安全的选择。我也想符合PCI 标准。
如果您要将信用卡号存储在您控制的数据库中,请阅读 PCI DSS:
http://en.wikipedia.org/wiki/Payment_Card_Industry_Data_Security_Standard
为什么要遵守:
https://www.pcisecuritystandards.org/security_standards/why_comply.php
然后阅读如何说服那些要求你在家里存储信用卡的人你给自己带来的伤害世界:
更新:在我写这个答案的三年里,我对 PCI 有了更多的了解,并且发布了一个更新的规范。虽然下面的信息没有错,但步骤 1 将您置于“D for Merchants”级别的PCI 范围内,这是最繁重的。
处理此问题的更好方法是不要自己触摸卡数据。您可以使用处理器提供的表格向他们发送数据,或者您只是重定向到他们(如使用 PayPal)。这两个选项都可以使您处于“A”或“A-EP”级别,这更容易获得认证。
无论哪种方式,您仍然会收到一个可以安全存储的令牌,因此步骤 3 和 4 仍然适用。
原答案:
我听说作为替代方案(可能是更简单的选择),服务提供商(您与之进行交易)会给您一个可用于检索交易信息的密钥。
这是真实的。基本上,过程是: