Como criptografar as informações do pagamento
Nesta seção explicamos como realizar a criptografia dos dados de pagamento
No conteúdo do JSON no endpoint de "Processamento da Transação de Pagamento" existe alguns dados sensíveis do cliente, e para atender ao PCI DSS iremos utilizar o processo de criptografia conhecido como AES 256, que é um padrão internacional de criptografia que garante uma segurança de dados, reconhecida pelo governo.
Como criptografar?
Para realizar a criptografia será utilizado a Chave Pública disponibilizada pela equipe da Fast Shop, basta entrar em contato conosco.
Após é necessário converter o resultado para Base64, com isto não teremos problemas com caractere inválido no JSON.
Abaixo consta um exemplo do código em .Net (dotNet) de como criptografar:
using APIAuthentication.Interfaces;
using Org.BouncyCastle.Crypto;
using Org.BouncyCastle.Crypto.Parameters;
using Org.BouncyCastle.OpenSsl;
using Org.BouncyCastle.Security;
using System;
using System.IO;
using System.Security.Cryptography;
using System.Text;
namespace APIAuthentication.Helpers{
public class RsaHelper : IRsaHelper
{
private readonly RSACryptoServiceProvider _privateKey;
private readonly RSACryptoServiceProvider _publicKey;
public RsaHelper()
{
string public_pem = @"Keys\pos.pub.pem";
_publicKey = GetPublicKeyFromPemFile(public_pem);
}
public string Encrypt(string text)
{
var encryptedBytes = _publicKey.Encrypt(Encoding.UTF8.GetBytes(text), false);
return Convert.ToBase64String(encryptedBytes);
}
private RSACryptoServiceProvider GetPublicKeyFromPemFile(String filePath)
{
string appPath = AppDomain.CurrentDomain.BaseDirectory;
string path = Path.Combine(appPath, filePath);
using (TextReader publicKeyTextReader = new StringReader(File.ReadAllText(path)))
{
RsaKeyParameters publicKeyParam = (RsaKeyParameters)new PemReader(publicKeyTextReader).ReadObject();
RSAParameters rsaParams = DotNetUtilities.ToRSAParameters((RsaKeyParameters)publicKeyParam);
RSACryptoServiceProvider csp = new RSACryptoServiceProvider();
csp.ImportParameters(rsaParams);
return csp;
}
}
}
}Last updated
Was this helpful?