5

在我的方法中,用户第一次想用信用卡付款,他必须重新输入他的登录密码和完整的信用卡信息。

支付成功后,我生成一个随机密钥,将其打包为密钥库,最后将密钥库文件存储在内部存储中,该密钥库文件由用户的登录密码锁定。另一方面,信用卡信息会被这个密钥加密,变成Base64编码的字符串,最后写入内部存储的文件中。

下次用信用卡付款时,用户还必须重新输入他的登录密码,这样我就可以用它来解锁密钥库文件并提取密钥。在这一点上,我有能力解密用户的信用卡信息。

以上是我保护存储在设备上的信用卡信息的方法,它安全吗?

4

3 回答 3

2

不要在设备上保存用户信用卡数据!只是没有办法让它安全。植根手机可以让应用程序更轻松地访问敏感数据。设备可能会丢失或被盗。您必须实现对服务器的安全用户登录并将 CC 数据存储在那里。

尝试使用这个http://developer.authorize.net/downloads/

于 2012-10-24T10:40:13.487 回答
2

看来我在帖子中的方法终于是我的答案了。

由于安卓对内部存储提供访问限制(见此链接),即使设备丢失或被盗,黑客仍然无法访问密钥库并通过暴力破解方法。

但还有另一个问题。

在有根电话中,“坏程序”可能会听软键盘,我应该做一些其他的学习工作。

于 2012-10-24T13:55:39.267 回答
0

您永远不应该在用户设备上存储信用卡号。

PCI 需要每季度对您的加密元素进行一次密钥更改——那么您将如何实现呢?强制用户每 3 个月更改一次密码?如果他们从不登录来更改它怎么办?

您的方法极易受到攻击者成为“客户”以试图破坏您的系统的攻击——他将能够在自己的设备上正确执行此操作,而不会检测或抵抗他的攻击。然后他可以使用他学到的知识来攻击您其他客户的帐户。请让我们知道您正在开发的网站 - 如果您遵循这种设计方法,我想在您完成后远离它。

于 2012-10-25T05:58:24.160 回答