python:双向部分信用卡存储加密

Posted

技术标签:

【中文标题】python:双向部分信用卡存储加密【英文标题】:python: two way partial credit card storing encrytion 【发布时间】:2011-01-18 07:24:53 【问题描述】:

对于我的电子商务网站,我想将部分信用卡号存储为字符串,为此我需要加密信息以存储在数据库中,并在用户想要重复使用之前购买的已输入信用卡信息而不输入时解密一切从头再来。

我正在使用 Django,因此我需要通过 Python 解决这个问题。解决这个问题的聪明算法是什么?

【问题讨论】:

【参考方案1】:

在您进一步了解之前,您应该查看PCI-DSS,它准确地控制了您需要具备哪些流程才能考虑存储加密的卡号。简而言之,您应该认真考虑外包给第三方支付网关。

如果您了解了后果之后确实想继续,那么再次 - 遵循 PCI 指南。对于卡号的对称加密,您可能希望使用AES,并制定非常严格的key management policies。

但是,如果您只想存储部分卡号,那么 PCI 声明您可以(绝对最多)存储前六位和后四位数字。前六位数字是您识别卡类型所需的全部内容。您可能认为必要的最后四位数字有助于防止客户卡号几乎相同的问题。

恕我直言,存储部分卡号(纯文本)是您想要做的,然后将加密、授权和结算的处理外包给3rd party gateway。支付网关将为您传递给他们的每张卡提供唯一的令牌 ID,以便您可以参考唯一的卡来执行重新授权或退款等。

【讨论】:

【参考方案2】:

您确定要像这样散列敏感信息吗?可能值得阅读this article 以了解尝试将任何敏感信息存储在数据库中的一些陷阱。在您的情况下,情况更糟,因为您希望转换是可逆的。请记住,如果您可以逆转它,那么攻击者也可以。

在开始本课程之前仔细考虑...

也许您最好将此类工作外包给专门从事此工作的人(例如Paypal 或Google Checkout 等)。

【讨论】:

以上是关于python:双向部分信用卡存储加密的主要内容,如果未能解决你的问题,请参考以下文章

单向加密和双向加密

存储信用卡信息 [重复]

安全审查:客户端信用卡# 存储在服务器上,但一次性加密存储在客户端 cookie 中

是否有用于信用卡加密的最佳 .NET 算法?

关于存储信用卡详细信息的安全模型的思考

iOS - 从 ios 应用程序以加密形式将信用卡/借记卡存储在服务器上,然后再次从应用程序解密。我怎样才能最安全地管理它?