【问题标题】:Storing a SHA256 of first and last name along with 4 last digits of credit card number存储名字和姓氏的 SHA256 以及信用卡号的最后 4 位数字
【发布时间】:2013-05-03 02:09:54
【问题描述】:

我正在努力寻找在客户进行购买之前唯一识别客户的最佳方法,以确保同一个人不会两次使用优惠券代码。我不打算让我的网站完全符合 PCI 标准,因为我不打算存储信用卡号(只做 POST。)我想生成一个名字与姓氏连接的 SHA 256(单向加密)和信用卡号并将其存储到我的数据库中。这是否需要 PCI 合规性,尽管它是一种单向加密?如果使用名字 + 姓氏 + 信用卡的最后 4 位数字,还需要完全符合 PCI 吗?

谢谢,

【问题讨论】:

  • SHA 256 被称为“哈希”,而不是“单向加密”。在一般情况下,您不能解密哈希,因为多个有效输入必然会产生相同的哈希(无限的输入集,有限的哈希值集)。
  • 对,散列,但是你不能解密它不是一种单向加密方法吗?
  • Afaik,保留任何持卡人数据会为您的计算机系统增加安全要求,我不知道哈希有任何标准例外。此外,如果系统收到未加密信用卡号的帖子,即使您不存储它们,它也肯定会增加更多限制。
  • 不,加密本身也可以被解密(至少在密码学领域中这个词是这样定义的)。

标签: credit-card sha256 pci-compliance


【解决方案1】:

您能够获得完整的卡号这一事实根本意味着您将参与 PCI 合规性,无论您计划如何生成哈希。 p>

如果您能够对卡号进行哈希处理,并且只存储哈希值,那么这肯定会让您更容易实现 PCI 合规性,但您仍然需要解决其他问题以确保(例如)没有流氓员工可以在哈希之前收集卡片数据。

使用 SHA256 散列是可以接受的,只要每张卡都有唯一的盐。您使用名字 + 姓氏作为盐的计划在这里可能被认为是可以接受的。

理想情况下,尽管您会使用捕获卡详细信息并将其标记化的支付网关。这意味着您永远无法访问完整的卡号,并且几乎消除了您对 PCI 合规性的责任,还意味着您可能只使用令牌 ID 代替卡号,并且不需要散列。

【讨论】:

    猜你喜欢
    • 2014-09-17
    • 1970-01-01
    • 2019-06-05
    • 2021-07-22
    • 2016-02-22
    • 1970-01-01
    • 2012-01-25
    • 1970-01-01
    • 2012-07-11
    相关资源
    最近更新 更多