CardData 表单元素的值示例:
PAN=4300000000000777;ExpDate=0519;CardHolder=IVAN PETROV;CVV=111
CardData对象收集为“key=value”列表(以“;”分隔),加密 公钥(X509 RSA 2048),生成的二进制值以 Base64 编码。
我的代码
const key = new NodeRSA();
key.importKey(this._publicKey, 'pkcs8-public');
const encrypted = key.encrypt(cardData, 'base64');
this._publicKey - 开放代码 (X509 RSA 2048),用于加密,由银行发行
Card data blocking error.
避免使用
NodeRSA
,因为它不再被维护。相反,请使用 crypto
包。
这可以是你的功能:
function encryptWithPublicKey(publicKey, data) {
const buffer = Buffer.from(data, 'utf8');
const encrypted = crypto.publicEncrypt(
{
key: publicKey,
padding: crypto.constants.RSA_PKCS1_PADDING,
},
buffer,
);
return encrypted.toString('base64');
}