Ho un'applicazione in cui un utente compra "spille per carte regalo". Una volta completato l'acquisto, noi, come broker, acquistiamo i pin da una terza parte e dobbiamo consegnarli all'utente finale.
Una volta che abbiamo i pin, dobbiamo caricarli affinché l'utente possa usarli come una normale scheda. A causa della necessità che si tratti di dati sensibili, ma allo stesso tempo di dati che devono essere mostrati all'utente finale, mi trovo in un approccio migliore qui.
Devo memorizzare questi codici in modo sicuro, ma allo stesso tempo, essere in grado di decodificarli in quanto l'utente finale deve vedere il codice per l'utente sul sito Web del commerciante XYZ.
L'applicazione utilizza il framework CodeIgniter di PHP che ha una libreria di crittografia incorporata.
Esempio:
$this->encryption->encrypt($data['Pin'])
.
Il pin viene quindi crittografato e memorizzato nel DB MySQL e può essere recuperato con:
$this->encryption->decrypt($pin)
.
Il problema con questo, dal punto di vista della sicurezza, è che l'applicazione PHP ha la chiave di crittografia memorizzata al suo interno in modo che possa eseguire questi metodi.
Non penso di poter utilizzare l'hashing in questa situazione, poiché ho bisogno di conoscere il vero valore dei dati.
Qualche suggerimento su un approccio per questo?