通过双向加密将信用卡数据保存在移动设备上

Posted

技术标签:

【中文标题】通过双向加密将信用卡数据保存在移动设备上【英文标题】:Saving credit card data on a mobile device with two way encryption 【发布时间】:2016-04-17 22:57:24 【问题描述】:

我们经常可以找到提供应用内购买商店信用卡详细信息的移动应用程序,让用户可以方便地购买东西。我计划在客户端实施相同的机制。以下几点是我能想到的。

首先,涉及到几个变量:

credit_card_number

用于购买的信用卡号。

cvc

正在使用的信用卡的 CVC。

expiry_date

所用信用卡的到期日。

card_info_key

用于加密和解密存储在客户端设备中的信用卡信息的密钥。

是否可以将card_info_key保存在服务器上,然后使用它在客户端设备上加密和解密信用卡信息,如下所示?

// credit card information entered by user
var credit_card_number = '1234123412341234';
var cvc = '789';
var expiry_date = '12-2020';

// the key is retrieved from server
var card_info_key = getCardInfoKeyFromServer(current_user);

var card_info = 
    'number': credit_card_number,
    'cvc': cvc,
    'expiry': expiry_date
;

// an encrypted token is expected
var encryptedCardInfo = encryptCardInfo(card_info, card_info_key);

// an object containing the same data as card_info should be returned
var decryptedCardInfo = decryptCardInfo(encryptedCardInfo, card_info_key);

另外,我应该使用什么加密和解密算法?

【问题讨论】:

【参考方案1】:

这不是技术问题,因为您根本不允许实现这样的功能(除非您使应用程序符合 PC-DSS)。 有关更多信息和链接,请参阅 How to save credit card data in a database?。

【讨论】:

以上是关于通过双向加密将信用卡数据保存在移动设备上的主要内容,如果未能解决你的问题,请参考以下文章