Tengo una aplicación donde un usuario compra "alfileres de tarjetas de regalo". Una vez que hayan completado su compra, nosotros, como intermediarios, compramos los pines de un tercero y debemos entregarlos al usuario final.
Una vez que tengamos los pines, debemos subirlos para que el usuario pueda utilizarlos como una tarjeta normal. Debido a la necesidad de que estos datos sean confidenciales, pero al mismo tiempo, los datos que finalmente deben mostrarse al usuario final, tengo un mejor enfoque aquí.
Necesito almacenar estos códigos de manera segura, pero al mismo tiempo, poder decodificarlos cuando el usuario final necesite ver el código para el usuario en el sitio web del comerciante XYZ.
La aplicación utiliza el marco CodeIgniter de PHP que tiene una biblioteca de cifrado integrada.
Ejemplo:
$this->encryption->encrypt($data['Pin'])
.
El pin se encripta y almacena en la base de datos MySQL y se puede recuperar con:
$this->encryption->decrypt($pin)
.
El problema con esto, desde un punto de vista de seguridad, es que la aplicación PHP tiene almacenada la clave de cifrado para que pueda ejecutar estos métodos.
No creo que pueda usar el hash en esta situación, ya que necesito saber el verdadero valor de los datos.
¿Alguna sugerencia sobre un enfoque para esto?