我来到一种情况,我需要存储信用卡持有人的数据在我的数据库,我正在寻找最安全的方式来处理这个问题。请注意,我完全了解PCI,所以我的问题纯粹是关于加密方面的。
现在,我决定使用Curve25519公钥加密(使用using),私钥被安全地、脱机地存储。让我们假设我正确地实现了这一点。我认为,当我只加密信用卡号码和失效日期时,就很容易强行执行,因为已知信用卡号的前6位和最后4位数字以及失效日期,因为它们已经是数据库中的纯文本。
假设我在加密这个
1234561111118762|10|21|VISA现在这个字符串中唯一的秘密是111111 (6位数字)。要找出这个号码需要花费10^6的时间。
但如果我像这样加密呢?
1234561111118762|10|21|VISA|aVeryLongPsuedoRandomStringGeneratedUniquelyForEachEncryptedString这能阻止蛮力10^6的场景吗?还是我漏掉了什么?
发布于 2019-05-29 06:38:03
说到加密。
我想你所说的“暴力”是指获取公钥,加密并与你存储的密文进行比较。如果这是您的意思,那么答案取决于实现。
您需要确定实现是否是确定性的-如果是,那么是的,这将是可能的蛮力和比较。如果不是(你预期的),那么这不会是个问题。
我想利伯钠已经解决了这个问题。
https://stackoverflow.com/questions/56353799
复制相似问题