在我的方法中,第一次用户想要用信用卡付款时,他必须重新输入他的登录密码和完整的信用卡信息。
成功付款后,我生成一个随机密钥,将其打包为密钥库,最后将密钥库文件存储在内部存储中,此密钥库文件被用户的登录密码锁定。另一方面,信用卡信息将通过此密钥加密并转换为Base64编码的字符串,最后写入内部存储中的文件。
下次用信用卡付款时,用户还必须重新输入他的登录密码,这样我就可以用它解锁密钥库文件并解压密钥了。此时,我有能力解密用户的信用卡信息。以上是我保护设备上存储的信用卡信息的方法,是否安全?
答案 0 :(得分:2)
请勿在设备上保存用户信用卡数据!没有办法让它变得安全。植根手机可以让应用程序更轻松地访问敏感数据。设备可能丢失或被盗。您必须实现安全用户登录服务器并在那里存储CC数据。
答案 1 :(得分:1)
我的帖子似乎终于得到了答案。
因为andriod提供内部存储的访问限制(see this link) ,即使设备丢失或被盗,黑客仍然无法访问密钥库并通过暴力破解方法打破它。
但还有另一个问题。
在根电话中,“坏程序”可以听软键盘,我还应该做一些其他的学习工作。
答案 2 :(得分:0)
您绝不应在用户设备上存储信用卡号。
PCI需要对您的加密元素进行季度密钥更改 - 那么您将如何实现这一目标?强制用户每3个月更改一次密码?如果他们从未登录进行更改怎么办?
您的方法非常容易受到攻击者成为“客户”的攻击,以便试图破坏您的系统 - 他将能够在自己的设备上正确执行此操作,而不会被攻击者检测到或抵制。然后,他可以使用他学到的东西攻击其他客户的帐户。请告诉我们您正在处理的网站 - 如果您遵循此设计方法,我希望您在完成后远离它。