java - 如何在 Android 和 Rest 上使用密码学处理信用卡信息

标签 java android cryptography payment-gateway

我有一个带有 ASP.NET WebApi 的后端和一个 Android 客户端。基本上,当用户付款时,我需要将信用卡信息发送到我的 WebApi,然后通过 REST 向我的网关付款。但我很担心,因为在某些情况下,这些信息可能会以某种方式被截获。为了在 SQL 上保存这些信息,我已经有了一个密码学代码来执行此操作。我在想,我是否应该实现一个代码来将数据从 android 加密到 Api 并解密以进行支付,然后使用我当前的密码术存储在数据库中?我应该使用 Rijndael 吗? ?谢谢!

最佳答案

使用 HTTPS 时,您应该 pin the certificate ,这意味着验证您直接连接到的站点是正确的站点。

这是通过验证 HTTPS 连接提供的证书是正确的站点来完成的,这避免了 MITM attacks .

Android 客户端验证连接是否直接连接到您的网关,以及您的网关是否直接连接到支付网站。

您不需要再添加安全/加密。

正如 henry 所说:查阅 PCI DSS 文档。参见 PCI Compliance Guide .

关于java - 如何在 Android 和 Rest 上使用密码学处理信用卡信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44353105/

相关文章:

android - 延迟整个重复的 xml 动画

windows - Signtool.exe 成功,但向文件添加了零个签名

c++ - RSA 程序只能加密和解密特定范围内的数字

azure - 重新实现 uniqueString() 哈希 ARM 函数

java - org.apache.solr.client.solrj.beans.BindingException : Exception while setting value

java - android:SharedPreferences不保存数据

android - 如何从我的 android 测试项目的 Assets 文件夹加载文件?

java - 如何将 Session 对象转换为 Map?

java - 无法使用 '''gradle '''命令构建/组装grails项目找不到工件 'org.fusesource.jansi:jansi:1.11@jar'

Java 接口(interface)——为什么没有私有(private)方法?